Confession d'un accro au design. Comment nous avons fait le jeu "IT Alchemy" en un mois

- Bonjour, Habr! Je m'appelle Zhenya et je suis accro au projet.
- (série de votes incohérente) Bonjour, Zhenya!

Après une telle introduction, les références au travail sont généralement suivies jusque tard dans la nuit en semaine et toute la journée le week-end, en comptant les kilogrammes de malbouffe consommés, les descriptions colorées des nuits blanches avant la date limite, et au final ce vide et ce détachement qui survient après la fin du projet ... Et tout cela sera plus loin dans le texte, mais d'abord un peu de fond.



Je suis développeur chez Dodo Pizza Engineering. Beaucoup de gars de notre équipe participent à divers projets parallèles. L'année dernière, par exemple, c'était une quête par télégramme sur le courrier CMAN , qui était dédiée au Moscow DotNext 2018 . Cette année, nous avons décidé de continuer la tradition et de faire un autre jeu déjà par DotNext 2019. Donc, c'était en septembre, il y avait quelques mois avant la conférence, et nous avions un besoin urgent d'un plan.
FYI: Ceci est la première partie d'un article sur IT Alchemy. La prochaine partie sera consacrée aux détails techniques du développement du jeu.

Plan de projet idéal


Nous avons compris que répéter l’histoire de l’année dernière ne fonctionnerait pas. D'abord, c'était la première fois, et la première fois par définition est unique. Deuxièmement, et c'est probablement la chose la plus importante - ce projet est développé depuis plusieurs mois. Et quelques semaines avant l'événement, les développeurs sont généralement partis pour le faire à plein temps.

Eh bien, notre objectif était plus modeste: nous avions moins de personnes, des délais plus courts et trop de travail principal pour jouer au jeu pendant les heures de travail. Lors d'une session de brainstorming conjointe, quelqu'un a suggéré de créer une variante informatique du jeu populaire Alchemy il y a de nombreuses années.

Permettez-moi de vous rappeler brièvement pour ceux qui n'ont pas trouvé ces moments: le joueur a un nombre initial d'éléments (généralement 4), en les combinant, vous pouvez en collecter de plus en plus de nouveaux qui deviennent plus difficiles. La tâche du joueur: ouvrir tous les éléments. Dans l'Alchimie originale, un nombre fini d'éléments a atteint plusieurs dizaines de milliers.


Capture d'écran de la même Alchemy 2013

Notre idée m'a paru un projet idéal pour un mois pour trois raisons:

  1. Tâches techniquement claires: déployer un serveur principal, écrire un client pour les téléphones, dessiner une interface et des images d'éléments.
  2. Les mots des thèmes informatiques doivent être combinés les uns avec les autres (hehe, si seulement).
  3. La tâche que je me suis personnellement fixée: faire le jeu uniquement pendant mon temps libre, le week-end, sans trop de pression. Nous ne voulions certainement pas répéter l’expérience de l’année dernière.

Règles d'assemblage: être à l'heure dans 30 jours


Que faut-il faire en premier pour assembler un projet viable en un mois? C'est vrai - coupez la portée! En fait, tout notre travail était parfaitement divisé en quatre blocs:

  1. Serveur backend. Misha Kumachev ( Ceridan ), qui a conçu le backend pour CMAN, en était responsable.
  2. Clients Unity pour Android et iOS. Cette partie était sur moi car j'avais déjà une douzaine de prototypes et deux jeux publiés sur Google Play.
  3. La conception de l'interface et des icônes a été réalisée par Tanya Turmanidze.
  4. Et ... du contenu pour le jeu. Mais ce bloc n'a pas eu de propriétaire depuis longtemps. Et c'était peut-être notre erreur la plus importante (et la plus évidente).




Notre concept de base n'était pas différent de l'original de 2013: le joueur a 4 éléments de base, au total, vous pouvez collecter un autre N éléments. Chaque élément doit avoir: nom, image et description de l'art. Tout nouvel élément est collecté auprès de seulement deux autres objets précédemment ouverts.


Pour éviter la fraude, nous avons stocké toutes les informations sur les combinaisons d'éléments sur le backend. Le client a envoyé une demande à partir de l'ID de deux éléments que le joueur a tenté de connecter, et le serveur a renvoyé si cette combinaison avait réussi ou non. En cas de succès, le client a reçu l'ID du nouvel élément, son nom et sa description. Par son nom, le client a trouvé l'image souhaitée et un nouvel élément est apparu dans le lecteur. Autrement dit, toutes les données nécessaires au jeu ont été stockées par le backend.

Nous avons également prévu un tableau des records pour les 20 meilleurs joueurs qui ont reçu des prix, puisqu'un certain nombre de points a été attribué pour chaque élément collecté. En fait, c'est tout.

Tempérez votre ardeur, surmontez les tentations d'en faire trop


Naturellement, au cours de nombreuses discussions, une grande variété de souhaits est venue à l'esprit, ce que nous avons prudemment refusé. En voici quelques uns:

  1. Il y avait une idée d'ajouter un système de réalisations lorsqu'un joueur collectait une branche d'éléments, un élément complexe ou un ensemble. Après avoir réalisé qu'avec l'invention des éléments, les choses étaient loin d'être aussi roses que prévu, nous avons abandonné cette idée. Les réalisations auraient un sens sur une échelle de mille éléments, mais en réalité nous en avions beaucoup moins.
  2. Quelqu'un a suggéré de mettre en évidence de manière spéciale les éléments qui ne peuvent plus être utilisés en combinaison. Cependant, des tests préliminaires ont montré que cela n'est pas nécessaire.
  3. Le moment technique. Dans l'implémentation finale, toutes les images sont protégées à l'intérieur du client Unity. Autrement dit, pour mettre à jour ou compléter le contenu, il est nécessaire de mettre à jour l'assembly dans le magasin. Il y avait une idée de transférer des images vers CDN, afin que le client récupère les données du backend et les images depuis CDN. Ce serait alors presque un client «léger» avec une belle interface. Si nous parvenions à le faire, le jeu serait extensible à l'infini avec une opportunité constante de charger de nouveaux ensembles d'éléments. Mais nous nous sommes dégrisés par le fait que le jeu a été créé pendant deux jours ... Il y avait une tentation, mais nous l'avons surmontée avec succès.

Eh bien, nous avons parfaitement coupé nos tâches techniques, nous étions à l'heure clairement à l'heure, et aussi avec une marge. Les journées de travail ont été sauvées, pas un seul projet de travail n'a été blessé (ce qui ne peut pas être dit de mes soirées et week-ends).


Mes sentiments avant de voir ce qui se passe avec le contenu

Ne plaisante jamais avec les haricots de contenu


La confiance pour la composante technique a joué un tour dans le cas du deuxième ingrédient créatif du jeu - le contenu. Ici, nous avons fait deux erreurs: nous n'avons pas choisi une personne responsable et avons pris trop de sujets pour générer des paires de mots que nous ne pouvions pas mâcher. Détails:

  1. Après la première session de brainstorming, nous avons décidé que les éléments de notre Alchimie concerneraient trois sujets: l'informatique, la technologie alimentaire et quelque chose du monde de Dodo. Et nous n'avons pas immédiatement abandonné cette idée. Les mots et les combinaisons ont été générés simultanément dans trois directions, et bien que ce soit amusant, d'une manière ou d'une autre, il ne s'est pas immédiatement rendu compte que les trois sujets n'avaient pas beaucoup de points d'intersection. À un moment donné, nous avons néanmoins réalisé que quelque chose n'allait pas, nous avons laissé tomber le foothack et laissé la chose même de Dodo (pizza, bien sûr). Après cela, quelque chose a commencé à se cristalliser. Mais ici, le deuxième moment a joué un rôle.
  2. J'ai écrit ci-dessus que le processus de compilation du contenu n'avait pas de propriétaire. Les premiers mots ont été inventés par différents groupes de personnes qui ont simplement jeté tout ce qui leur venait à l'esprit. Donc, sur notre liste, il y avait des choses étranges comme «shkolota», «haricots» ou «fils de la petite amie de ma mère». (Et oui, il était possible de dessiner des "beans" dans JavaBeans, mais ... pas.). Déjà au milieu du projet, lorsque notre arbre de mots ne pouvait pas prendre racine sur la base de la logique, un dépassement est apparu - Anton Bruzhmelyov, a jeté presque tous les mots qui avaient été inventés auparavant et fait de nouvelles combinaisons plus logiques.
  3. Mais les deux points ci-dessus ont conduit au fait qu'il restait trop peu de temps pour inventer du contenu. En conséquence, nous n'avons obtenu que 128 éléments. Certes, d'après nos testeurs volontaires face à des collègues, une seule fille a pu collecter tous les éléments en quelques jours. Cela nous a rassurés. Mais nous n'avons évidemment pas tenu compte du degré de persévérance et de détermination des personnes qui se sont battues pour les prix lors de la conférence.



Ces mêmes haricots, et aussi une cyber abeille (!), Curiosity et un journal. Que se passe-t-il lorsque la fantaisie gagne le bon sens
Le contenu est la partie la plus importante du jeu, c'est lui qui accroche ou ne s'accroche pas au joueur. Le travail sur le contenu peut et doit commencer avant même le travail technique. Eh bien, il doit toujours y avoir une personne responsable qui, avec sa main impitoyable, coupera tout ce qui est inutile et ne laissera que ce qui fait le tout.

Jusqu'ici tout va bien ou problèmes avec Apple


Long, court, mais dix jours avant DotNext, notre IT Alchemy a commencé à se transformer en un produit fonctionnel. Nous avons finalement obtenu les dernières combinaisons de mots. La créatrice Tanya n'a pas eu à redessiner les images 10 fois. Le backend a toujours été bien fait et a marché en toute confiance vers la fonctionnalité prévue, et après cela, j'ai finalisé notre client Unity.

Il est temps de commencer à publier notre application dans les boutiques. Je ne m'attendais à aucun problème avec Google Play, j'avais déjà l'expérience de la publication d'applications à part entière, mais l'Apple Store, à en juger par les histoires de ses collègues, a commencé à inspirer des inquiétudes. Et ces craintes n'étaient pas vaines.

Nous avons publié des versions de test pour Android et iOS, nous l'avons d'abord testé nous-mêmes, puis nous avons invité plus de collègues. J'ai attrapé presque tous les bugs lorsque je l'ai testé moi-même. Certes, il y avait un problème avec la vitesse d'animation sur les appareils iOS, que je n'ai pas pu détecter pendant longtemps, car tout fonctionnait bien sur l'émulateur. Mais j'espère en parler dans le deuxième article sur la partie technique de notre projet.

La plupart des choses qui devaient être corrigées étaient liées à la mise en page - soit le «coup» sur le bouton tombera, la fenêtre ne s'étirera pas correctement à différents rapports d'aspect de l'écran. C'était une partie plutôt morne et pas la plus intéressante du travail, mais à la fin nous avons aligné le design avec tous les écrans possibles. Malheureusement, nous avons passé la plupart du temps sur l'écran de jeu et regardé à travers un grand montant ... Mais cela s'est avéré si stupide et désastreux qu'il mérite un paragraphe séparé.

Donc, littéralement trois jours avant la conférence, nous avions un ensemble de 128 mots, un backend prêt à l'emploi et des clients collectés pour Android et iOS. Il est temps de publier des versions publiques. Avec Google Play, tout s'est passé comme sur des roulettes. Mais avec l'Apple Store, nous avons eu des difficultés imprévues.


Pendant ce temps, chez Apple: "Que pensez-vous d'autre pour empêcher les gars de sortir?"

On m'a prévenu que m'étendre sur le côté est quelque chose de terrible, mais je n'ai pas compris à quel point. Tout d'abord, ils nous ont montré que nous jouions, puis nous avons été redirigés pour des raisons très étranges: "Votre application n'est pas une application, mais une vue Web." Après le troisième ou le quatrième éditorial, nous avons simplement commencé à écrire en réponse: "Non, ce n'est pas une vue Web, non, nous avons du contenu et l'application fait quelque chose d'utile."

Il y a eu la dernière nuit avant DotNext et la dernière tentative de publication de l'application. Miracle, arrive! Je n'ai pas bien dormi, un peu comme dans l'enfance avant mon anniversaire. Je voulais me réveiller, regarder le portail des développeurs Apple et y voir une coche verte. Hélas, le miracle ne s'est pas produit.

À propos de la fakapy et du chat


  1. Écran de démarrage et contrôle depuis Apple.

    Ceci est ma douleur personnelle. Parce qu'il a ignoré. L'époque des jeux au début des années 2000, lorsque l'écran de démarrage copiait une étagère avec des jeux de société ou simulait une salle de jeux, est révolue depuis longtemps. Cependant, nous avions juste cela.

    L'écran de démarrage s'est avéré être surchargé. Et il est complètement sorti, à la fois du style de jeu et de son but direct - donner à la personne l'opportunité de jouer le plus tôt possible. Même dans la logique de notre travail de conception, le joueur n'a vu qu'une seule fois l'écran de démarrage lors de l'inscription. Lorsque vous le redémarrez, l'écran principal du jeu s'ouvre immédiatement.

    La photo en elle-même était magnifique, il y avait des détails dedans, il y avait un chat dedans ... et elle avait aussi un champ de saisie trop petit, sur lequel tout le monde ne pouvait pas toucher. Tous ceux qui veulent jouer n'ont pas fait face à l'écran de démarrage, nous avons donc déjà perdu au début un certain pourcentage de joueurs.

    Mais le fichier le plus désagréable est devenu la raison pour laquelle Apple nous a enregistrés pour la dernière fois: sur l'iPad (dont le rapport d'aspect est beaucoup plus proche du carré que sur tous les autres appareils que nous avons considérés), l'image de départ a été mise à l'échelle afin que le chat grimpe sur le bouton "OK" , et la personne ne pouvait physiquement pas cliquer dessus.


    Chat homme sain et chat fumeur sur iPad

    Bien sûr, nous ne nous attendions pas du tout à ce que nos joueurs jouent sur l'iPad, mais le fait que la tête du chat bloque le début du jeu était indéniable. Afin de ne pas couper une partie de l'audience, nous avons dû procéder de manière plus compliquée: nous avons honnêtement annoncé qu'Apple avait une politique draconienne, et ils nous ont redirigés, mais ont invité tout le monde à s'inscrire pour des tests publics et à participer au jeu de cette manière.

    Le plus ennuyeux est que presque tout le temps de développement, j'ai utilisé l'écran de démarrage le plus simple avec un fond noir, un grand champ de saisie et un bouton OK, que rien n'a bloqué.
    Quelle est la morale de toute cette histoire? Dans notre cas, nous avons déployé plus d'efforts et aggravé tout. Mieux c'est plus facile. Vous dirigez l'énergie dans la bonne direction et obtenez le résultat souhaité, et si vous commencez à devenir sage, le karma universel vient à vous et vous frappe douloureusement la tête.
  2. Le deuxième fakap s'est produit avec un nombre fini d'éléments dans le jeu. Comme je l'ai écrit ci-dessus, une seule personne parmi tous nos testeurs a collecté tous les éléments en quelques jours. Mais nos testeurs ont joué des bribes entre le travail et un peu le soir. Mais nos vrais joueurs sur DotNext étaient déterminés à gagner des prix, donc au milieu de la première (!) Journée, nous avions décidé les trois finalistes. Autrement dit, ces personnes, sans ménager leurs doigts, ont percé les 128, ou plutôt 133 éléments.

    Oups, où en est 133, si tout le temps avant cela j'ai parlé de 128? En tant que passionné de projets invétéré, au dernier moment, j'ai voulu mettre quelque chose dans le jeu. Par conséquent, la créatrice Tanya a dessiné, et moi en secret d'autres participants au projet, j'ai ajouté cinq œufs de Pâques supplémentaires sur des personnes qui étaient en quelque sorte liées au développement du jeu. Et le nombre total d'éléments qui a été montré au joueur a été codé en dur pour plus de simplicité. En conséquence, les joueurs n'ont collecté que 128 éléments (ce qui n'est pas le nombre maximum de points) et ont pensé que c'était tout.


    Magnifique cinq sous la forme d'éléments de Pâques.

Au lieu d'un épilogue


DotNext a réussi. Pour Android, le jeu a été téléchargé par 146 personnes. Un autre 43 a franchi le test bêta public pour iOS. Nous avons fait un chat pour les joueurs. La plupart des joueurs étaient satisfaits (nous n'avons pas reçu de critiques négatives directes), les prix ont trouvé leurs gagnants. Eh bien, comme toujours, le soulagement et la dévastation sont tombés sur moi, presque toujours.

Maintenant, après plus d'un mois, j'ai été libéré et j'ai écrit ce post mortem. Eh bien, nous n'avons pas pu éviter les fakaps. Mais nous avons atteint notre objectif - nous avons mis en œuvre un projet à part entière en un mois sans interruption de travail et l'avons lancé avec succès lors de la conférence. Cette histoire m'a-t-elle appris quelque chose? Peut-être qu'il est temps de s'arrêter et de se lier au travail de conception? C'est difficile à dire, attendez la prochaine conférence!
Dans la version hors ligne de notre "IT-alchimie", sans table des records et avec un écran de démarrage fixe, vous pouvez jouer en le téléchargeant sur Google Play .

Source: https://habr.com/ru/post/fr481038/


All Articles