Bonjour, je veux parler de la façon dont j'ai créé mon premier jeu relativement sérieux pour iOS et Android.
Contexte
Au lycée, mon ami et moi étions très bons en cours d'informatique, j'aimais coder et résoudre divers problèmes en utilisant la programmation. De plus, j'ai toujours aimé les jeux et, comme de nombreux fans à jouer, j'ai été séduit par l'opportunité fantomatique d'écrire le mien.
Comme il se doit, j'ai développé un intérêt pour les autres langages de programmation et j'ai décidé de "grandir" à partir du fameux Pascal. Mon choix s'est porté sur le fameux Python, car j'avais entendu parler de sa large gamme d'applications et de son développement relativement facile. Avançant un peu dans la lecture de la littérature pertinente, pour la pratique, j'ai résolu les problèmes du
projet Euler .
En fait, pendant tout ce temps, j'ai voulu commencer à faire quelque chose de vraiment sérieux, et à un certain stade j'ai senti que si ce n'était pas maintenant, alors jamais.
Ce jeu «sérieux», comme vous l'avez peut-être deviné, est devenu un jeu.
Ayant trouvé la bibliothèque PyGame pour cette leçon, je me mis au travail. Pour commencer, j'ai décidé de pratiquer un petit quelque chose de banal. Tetris n'a pourtant pas fait, mais a réalisé, bien que pas immédiatement, le bon vieux jeu "life", dont il était très content.
La vie

Puis ils ont rejoint mes créations: une DX-Ball presque complète, que j'ai jouée avec intérêt sur mon oncle au milieu du zéro, une copie de Supaplex à ses balbutiements (la même nostalgie) et, dans le même état, une arcade inspirée du relativement moderne The Binding d'Isaac.
Dx ball '

Isaac '

Le début des étudiants et les premières impulsions pour créer leurs propres projets
Au fil du temps, j'ai réalisé une chose désagréable pour moi: je n'ai rien fini des projets, même si au début il y avait plus qu'assez d'enthousiasme. Et il en est ainsi: de moins en moins je reviens aux anciens développements, parfois avec enthousiasme j'en reprends, mais le résultat est un.
Puis, la période la plus terrifiante de la vie d'un étudiant a commencé: l'examen. La programmation s'est estompée à l'arrière-plan, mais après avoir réussi les examens et entré dans le "Electronics and Nanoelectronics" à la Polytechnique de Saint-Pétersbourg, je suis retourné à la programmation. De plus, la vie étudiante m'a un peu secoué, m'a appris la responsabilité, c'est pourquoi j'ai décidé qu'à partir de maintenant je terminerais tous mes projets.
Et j'ai donc décidé d'écrire quelque chose pour Android. Tout s'est arrêté sur le même Python, car c'était la seule chose que je savais en quelque sorte et à quoi je pouvais m'accrocher. J'ai commencé à apprendre le framework Kivy. Malheureusement, autant que je ne voudrais pas, Python + Kivy n'est pas la meilleure option de développement pour Android, et j'ai réalisé que je ne pouvais pas aller loin dans cette direction.
En conséquence, après avoir passé beaucoup de temps sur une application aussi simple qu'un test avec la conclusion de plusieurs options pour le résultat final, j'ai quand même mis fin à ce modeste projet et je l'ai même téléchargé sur GooglePlay. Puis, à la suite de la popularité de la bataille de deux batailles de rap bien connues, mon ami a proposé de faire un test sur ce sujet et a préparé des questions pour lui. Notre premier projet terminé est donc apparu, et une équipe de deux personnes est apparue, prenant le nom de «Aspid Dynamics».

La plupart du temps a été consacré à la connaissance de Kivy et d'une autre bibliothèque KivyMD qui fournissait des éléments Google Material Design. Le reste du temps a été consacré à dessiner des icônes et de nombreuses refontes (Cela s'est finalement avéré, pas très, mais cela aurait pu être pire). Comme je ne travaillais pas seul, cela a facilité le processus de développement et m'a motivé.
De nouveaux débuts
Le résultat n'était pas tout à fait ce que je voulais, mais j'ai décidé de continuer. J'ai examiné de près un nouvel outil de développement pour moi, qui était le moteur Unity bien connu. Le choix de la direction du développement a finalement été fait, il reste (juste quelque chose) à se familiariser avec C # et à explorer les capacités d'Unity lui-même. Ainsi, nous nous sommes rapprochés des événements qui ont eu lieu récemment.
Comme auparavant, j'ai décidé de ne pas aborder immédiatement quelque chose d'impossible. L'idée était simple: créer un jeu dans lequel les gens écriront des mots adaptés à une condition prédéterminée. Un exemple simple: «Entrez les mots contenant les trois lettres« o »», après quoi vous entrez, par exemple, «cloche». Au début, l'idée ne semblait pas nouvelle, mais après avoir vérifié le Play Market, je n'ai pas trouvé de tels jeux, ce qui m'a finalement convaincu du succès de l'idée.
Projet «Word Expert»
Après avoir choisi le nom trivial, mais accrocheur, "Word Expert" pour le jeu, j'ai commencé à examiner attentivement le processus de développement. La mise en œuvre semblait simple, du moins après une analyse superficielle. Peut-être en est-il ainsi, si nous formalisons uniquement la mécanique de base, mais avec un examen détaillé, la fonctionnalité a augmenté à plusieurs reprises et a été considérablement étendue.
Ayant terminé la description du projet, j'ai commencé avec enthousiasme à mettre en œuvre point par point. L'idée principale s'est concrétisée assez rapidement: la possibilité de créer des niveaux à partir de plusieurs modèles a été ajoutée.
Les modèles sont une sorte de base pour certains critères qu'un mot doit satisfaire, parmi eux: le début d'un mot sur une "sous-chaîne", c'est-à -dire une lettre ou une séquence de lettres, le contenu de la "sous-chaîne" du mot, le contenu de N lettres, la régularité / la bizarrerie du nombre de lettres du mot, etc.
De plus, les mots saisis par le joueur ont été vérifiés pour la conformité avec le modèle et la présence dans le dictionnaire. Des points ont été attribués en fonction de la fréquence du mot, et j'ai commencé à définir des niveaux de réussite en fonction du nombre de points que j'ai reçus en 5 minutes. Dans les niveaux standard du jeu, une personne doit entrer le nombre maximum de mots possible pour pouvoir passer les niveaux suivants.
Expert Word

Nouveaux problèmes et solutions inattendues
Tout irait bien, mais il s'est avéré qu'il est assez difficile de faire de nombreux niveaux différents les uns des autres. Encore une fois, mon ami a pris la tâche de m'aider, et au moment où j'étais dans la quarantaine, le problème n'était pas seulement que les niveaux sont difficiles à penser, mais que, en raison de certaines caractéristiques linguistiques de la perception humaine, nous avons trop souvent choisi certaines lettres et modèles, ignorant obstinément les autres.
Cela a été remarqué en temps opportun, et une tentative a été faite pour renforcer le contrôle sur moi-même, mais cela n'a pas donné les résultats souhaités, j'ai donc dû calculer et enregistrer les fréquences d'utilisation des lettres et des modèles dans nos niveaux. Après cela, il est devenu beaucoup plus facile de prendre soin de vous, mais à la fin, seuls 60 niveaux ont été effectués.
En raison du fait que la nécessité de proposer des niveaux entravait le développement, ainsi qu'en raison des problèmes décrits ci-dessus, j'ai décidé d'implémenter un générateur de niveau qui créerait une tâche saine basée sur nos modèles. Je n'ai pas pu trouver de corrélation entre le nombre de mots correspondant à l'affectation, leur fréquence et le nombre de points gagnés (cela signifiait que les niveaux devraient également être équilibrés - manuellement).
Apparemment, cela est dû au fait que les mots sont plus faciles pour certaines conditions, même s'il y en a moins. Par exemple, dans la conscience, les mots apparaissent tout simplement, avec la condition de commencer sur une sous-chaîne, par exemple, prenez les mots sur 'ba'. C'est comme si nous nous disions cette condition initiale "ba", et le cerveau la complète facilement avec beaucoup de mots: "tank", "bank", "banana", etc.
Mais si la condition ne contient pas plus de 4 voyelles et exactement 8 lettres, alors même s'il y a 6 fois plus de tels mots, la vitesse de sélection diminuera évidemment. Sur certains modèles, lorsque nous trouvons un mot, nous nous retrouvons dans un cluster entier (par exemple: se terminant par 'épicéa', si nous trouvons le mot enseignant, nous pouvons voir que de nombreuses professions se retrouvent comme: 'constructeur', 'conducteur' et etc.). S'il n'y avait pas de lien, rien n'aurait uni ces mots, alors par une simple recherche dans notre tête nous aurions beaucoup moins deviné.
Polissage, nouveaux modes, finitions
Le générateur créé a vraiment facilité la création de niveaux et, en augmentant progressivement le nombre de niveaux, mon ami et moi avons déjà atteint des centaines. Il a été inspiré par le succès du générateur impliqué dans la création des niveaux que nous avons décidé d'introduire un nouveau mode de jeu.
C'était «survie», où vous devez saisir des mots jusqu'à l'expiration du délai. La différence avec le mode classique est le fait que le joueur est ici confronté à la tâche de saisir un mot en N secondes selon une condition donnée. Une fois la condition remplie avec succès, une nouvelle tâche est générée et le temporisateur est étendu.
Plus tard, nous avons décidé que pour maintenir constamment le contenu, nous devions ajouter le multijoueur. Bien sûr, il est beaucoup plus intéressant de mesurer votre vocabulaire avec un ami pendant la récréation, ou de jouer avec un inconnu en ligne. Le mode multijoueur "classique" implique une compétition dans le nombre de points reçus sur un certain temps. Assez longtemps avec la mise en œuvre du jeu sur le réseau, j'ai encore compris et terminé 2 modes multijoueurs correspondants.
Beaucoup de problèmes dans le processus de développement nous ont amenés à la conception. Le principal hic, c'est que moi-même, j'étais loin d'être un designer, mon ami ne possédait pas non plus les compétences nécessaires et je voulais faire une image adéquate. Une troisième connaissance a accepté de m'aider, mais après plusieurs ébauches qui n'ont pas abouti, il n'a pas pu continuer.
En conséquence, grâce au traitement répété et à la collecte de commentaires d'amis, j'ai moi-même développé la version finale du design.
Sortie du jeu, plans pour l'avenir
Initialement, l'expert Word n'était censé entrer sur le marché du jeu qu'en raison du budget limité, mais mon ami m'a aidé à obtenir les 99 $ nécessaires pour la sortie sur l'AppStore.
Nous prévoyons de compléter et de mettre à jour le jeu. Niveaux supplémentaires, réalisations, notes des joueurs et bien plus encore. Peut-être ferons-nous une localisation en anglais, ce qui est un peu cher dans le cadre de ce jeu.
Merci beaucoup pour votre attention Ă tous ceux qui ont lu ce long post.
Sincèrement vôtre
Équipe Aspid Dynamics.