Comment écrire un jeu en un mois sans être distrait de votre travail principal

image



MoonGun est un jeu d'action / stratégie sur la défense de la base lunaire contre les astéroïdes. Le jeu a été créé par Ivens Serpa - l'auteur de nombreux articles sur la conception de jeux - dans le cadre du Github Game Off Game Jam en novembre 2020. Il l'a fait seul pendant son temps libre. Le jeu a reçu de nombreuses critiques positives, alors son créateur a décidé de partager l'expérience de son développement: décrire l'ensemble du processus de création et partager les méthodes qu'il a utilisées, y compris les étapes de conception, de planification, de développement et de sortie.



Avant de passer au sujet de l'article, il convient de mentionner quelques remarques importantes: ce matériel concerne plus la conception du jeu que l'aspect technique de son développement. Le projet a été développé en utilisant Unity 3D (version 2020.1), avec lequel l'auteur est déjà assez familier et dans lequel il a déjà écrit d'autres jeux. Malgré le fait qu'il ait travaillé seul sur le projet, ses amis l'ont toujours aidé, en testant le jeu et en partageant leurs réflexions à ce sujet. La plupart des actifs ont été soit pris sur Internet (par exemple, sur le site Kenney.nl ), soit ont été réalisés par le modélisateur Kaleo Mendes .





Game jams, thème et idées



Game jam est une compétition de développement de jeu dans laquelle les participants essaient de développer un jeu à partir de zéro en peu de temps - généralement de 24 à 72 heures. En novembre, GitHub a accueilli le Itch.IO Game Off Game Jam, qui a duré tout le mois de novembre. Ces jams ont généralement un thème central qui guide le processus de création des jeux en cours de développement. En 2020, ce sujet concernait la lune .



Les développeurs peuvent interpréter le sujet aussi librement que possible, la créativité est la clé ici. C'est aussi l'un des critères de classement des œuvres et de choix des gagnants.



Ainsi, la phase de conception devrait commencer par un remue-méninges sur les mécanismes de jeu et les idées pertinentes pour le sujet.



À la suite de ce brainstorming, Serpa avait trois concepts principaux:



  • , , — , ;
  • , , ;
  • , .


Bien que les trois idées semblaient bonnes, il y avait un problème avec leur échelle: la plupart des fonctionnalités de base dont elles avaient besoin ne pouvaient tout simplement pas être mises en œuvre en si peu de temps.



La deuxième idée est basée sur la physique et nécessite une base de code étendue pour rendre le jeu réaliste. La faisabilité technique peut compromettre la conception et rendre le prototypage initial trop difficile. En conséquence, vous pouvez prendre un risque - et passer du temps sur un jeu réaliste qui n'est pas amusant à jouer.



Quant à l'histoire interactive, la faisabilité technique est négligeable, mais le processus créatif ne l'est pas. En vous engageant à mettre en œuvre cette idée en seulement un mois, vous risquez d'obtenir une histoire fascinante qui ne serait, en fait, qu'un roman visuel - sans éléments de gameplay remarquables.



Mis à part ces facteurs, il n'était toujours pas clair quels mécanismes sont les mieux utilisés ici - quelle sera la principale force motrice du jeu. Après tout, il est préférable de commencer à développer un jeu avec un prototype d'un seul mécanicien, puis d'y travailler jusqu'à ce que vous obteniez un gameplay addictif et amenez le joueur à la ligne d'arrivée.



Ainsi, l'idée de collecter des ressources a été prise comme base pour le futur jeu. Et comme le simple fait de cliquer sur les boutons est assez ennuyeux, je me suis inspiré Space Invaders , et le concept du jeu lui-même a été formulé comme suit:



Le joueur contrôle un canon (tourelle) qui protège la base lunaire des chutes d'astéroïdes, ainsi que des objets de base (mine, laboratoire et hangar) qui collectent le minerai lunaire jusqu'à ce que la lune soit épuisée (condition de victoire).



Ci-dessous vous pouvez voir une image du premier prototype fonctionnel:



image

MoonGun Version 0.1 - pas trop joli, mais prototype fonctionnel





Prototype et hypothèses



Pour tester les hypothèses initiales, le premier prototype du jeu a été réalisé. Et comme aucune de ces hypothèses n'était liée au graphisme ou aux performances, les visuels, comme vous pouvez le voir dans l'image ci-dessus, étaient loin d'être les plus impressionnants.



Une version courte de ces hypothèses ressemblait à ceci:



  1. Est-ce que tirer des astéroïdes qui tombent est intéressant ou excitant?
  2. Pouvez-vous simuler une surface lunaire avec une grande sphère 3D?
  3. Dois-je contrôler le pistolet à l'aide du clavier ou de la souris?


Il y avait également plusieurs hypothèses techniques à tester, principalement liées à la sortie du jeu en version WebGL utilisant Unity . En raison de la pandémie, il était logique d'héberger le jeu directement sur Itch.io pour faciliter les tests et la distribution des versions. Les soucis étaient de savoir combien de temps il faudrait pour parcourir tout le cycle de construction-déploiement-test sur la plate-forme Itch.io (en heures ou en minutes), puis quelle qualité graphique pourrait être obtenue afin qu'une fréquence d'images acceptable soit maintenue lors du lancement du jeu dans le navigateur.



Le premier prototype a été très réussi. Non pas que toutes les hypothèses aient été confirmées, mais elles ont toutes reçu leur appréciation, et c'est le véritable objectif du prototypage. La première version du jeu a été publiée sur le site Web le 3 novembre. Le cycle de construction-déploiement-test a duré environ 15 minutes, ce qui s'est avéré être une agréable surprise.



Étant donné que l'idée semblait assez prometteuse pour continuer à travailler dessus, plusieurs concept art ont été créés juste au-dessus des captures d'écran pour voir rapidement une sorte d'approximation de ce à quoi ressemblerait la version finale du jeu. Ce dernier a facilité la présentation d'idées à d'autres personnes pour obtenir des commentaires.



image

Art conceptuel du jeu basé sur des captures d'écran du prototype



Le 14 novembre, une version déjà plus stable a été publiée avec des graphismes plus précis, une skybox décente et un bon post-traitement. Une grande partie du temps que nous avons passé à travailler sur la mise à jour a été consacrée à travailler sur les aspects notés dans les revues et à améliorer les graphiques pour évaluer l'efficacité de la construction WebGL.



À ce moment-là, une idée plus claire de la fonction de la tourelle et des structures lunaires s'était déjà développée. La tourelle générera des ressources d'astéroïdes en les abattant avec des coups de canon. La tâche des mines est de générer passivement des minéraux (cela nécessite des astéroïdes). Le hangar est nécessaire pour améliorer la tourelle (en utilisant des minéraux). Les laboratoires doivent aider à mener le joueur à la victoire (épuisement de la lune) en utilisant les deux ressources: les astéroïdes et les minéraux.



Une capture d'écran de cette version ( structures lunaires V0.4 ) peut être vue ci-dessous:



image





Benchmarks, version stable et gameplay



Lors du développement des versions 0.1 à 0.4, la plupart des tests ont été réalisés indépendamment ou avec l'aide d'amis proches. Mais à partir de la version 0.4, une promotion plus active du jeu pour les tests a commencé.



La version 0.4 est sortie sur Itch.io avec toutes les fonctions principales du jeu - c'est-à-dire qu'il s'agissait de la version dite stable: elle avait toutes les fonctions nécessaires pour terminer le jeu jusqu'à la fin, et elle pouvait déjà impliquer les joueurs au maximum.



image



Les commentaires que nous avons reçus lors des tests ont été très utiles pour améliorer encore le jeu. Les contrôles ont été modifiés du clavier à la souris, les effets visuels ont également changé. La version WebGL a ensuite été définie sur le paramètre le plus élevé, car la plupart des joueurs avaient des fréquences d'images supérieures à 60 FPS - à l'exception d'un testeur qui a essayé de l'exécuter sur un Chromebook.



De plus, il est maintenant plus clair que les gens ont vraiment apprécié le jeu. Il y avait même un testeur demandant plus de mises à jour et plus d'action. Cela signifiait que quelqu'un jouait activement au jeu jusqu'à sa fin (actuelle)!



La version "Lunar Structures" a déjà implémenté tout le cycle de jeu principal, comme le montre le diagramme ci-dessous:



image



Comme mentionné précédemment, le jeu est basé sur la collecte de deux ressources principales: les astéroïdes, collectés en les détruisant avec une tourelle, et les minéraux, qui sont collectés automatiquement dans les mines de temps en temps. La tourelle et les mines peuvent être améliorées en utilisant des ressources opposées (minéraux pour les tourelles, astéroïdes pour les mines). L'utilisation de ressources opposées a évité de fortes boucles de rétroaction positives dans l'économie du jeu: lorsque les mécanismes sont améliorés avec la ressource même qu'ils génèrent.





Des mécanismes complexes ou supplémentaires ne sont pas (toujours) nécessaires



Dans le diagramme ci-dessus, le terme « quête principale » est utilisé pour désigner l'objectif principal du jeu . Il a été implémenté comme un simple bouton qui dépense les ressources demandées. Pour gagner, le joueur doit dépenser de plus en plus de ressources jusqu'à ce que la lune soit complètement épuisée.



Le mécanisme de victoire a été conçu pour atteindre un nombre arbitrairement grand, ce qui active la condition de «victoire» et le joueur reçoit le statut de gagnant. Après l'épuisement de la Lune, les mines cesseront de générer des minéraux, et c'est la fin du jeu.



image

Variante de la quête principale (laser minéral) au laboratoire



Quelle conclusion peut-on en tirer? Vous n'avez pas toujours besoin de rendre votre jeu plus difficile(par exemple, ajouter plus de mécanismes) pour fournir des conditions de victoire ou pour améliorer le jeu. Pour MoonGun, puisque les joueurs l' appréciaient déjà , il n'était pas nécessaire de passer plus de temps à développer un nouveau mécanisme juste pour la condition de victoire - il pouvait être formulé en utilisant le mécanisme de base.



Rappelez-vous également que le jeu devait être terminé en un mois, donc moins d'implémentations ici signifiait plus de temps pour peaufiner et améliorer le jeu.





Volée! Équilibre et équité du jeu



Conformément aux conseils des testeurs, des éléments supplémentaires ont commencé à être introduits dans le jeu, ce qui n'a pas particulièrement élargi les mécanismes principaux et la boucle de jeu. La première idée ici était d'étendre les capacités du joueur en ajoutant une arme supplémentaire à la tourelle - un laser.



image

MoonGun Version 0.7 - Laser Le



laser a été chaleureusement accueilli par les testeurs et a ajouté un degré supplémentaire de liberté au jeu. Cependant, cela a également déstabilisé la puissance perçue du joueur. En raison de la portée et de la durée plus longues du laser, le canon conventionnel semblait maintenant faible. Il est nécessaire d'équilibrer le processus d'amélioration des deux types d'armes.



Ainsi, à un moment donné au fur et à mesure que le jeu progresse, le canon recevra plus d'améliorations et dépassera le laser. Ensuite, le laser recevra ses propres améliorations et retrouvera son leadership. Cet échange d'armes préférées dans les deux sens a augmenté la dynamique du gameplay.



Dans le même temps, le choix des armes appartenait toujours au joueur. Le jeu n'interfère pas avec l'utilisation des armes qui y sont présentées.



L'équilibrage est difficile. Par conséquent, l'objectif principal ici était de parvenir à un gameplay équitable - ce qui serait amusant et excitant, mais pas nécessairement équilibré.





Quêtes lunaires



En fait, le laser a été ajouté dans la version 0.5. Cependant, son implémentation plus stable n'a été introduite que dans la version 0.7 appelée Lunar Quests, qui comprenait également:



  1. ;
  2. ;
  3. ( SHIFT);
  4. / ;
  5. ;
  6. ( , );
  7. .


image



Veuillez noter que deux points sont liés à l'amélioration de l'apparence du jeu (1 et 2), deux - avec l'ajout / modification de commandes (3 et 4), deux autres - avec des éléments de jeu supplémentaires (5 et 6). L'un était destiné à l'analyse et au débogage. Cette division était complètement délibérée.



Compte tenu du temps de développement limité disponible, il était nécessaire d'équilibrer votre charge de travail dans de nombreux domaines nécessitant des améliorations.



La version Lunar Quests était plus complète et permettait aux joueurs d'expérimenter le jeu et d'interagir avec plus de contrôles. Cela a aidé à voir ce qui fonctionnait bien dans le jeu (comme les astéroïdes et la variabilité des armes) et ce qui manquait.



Dans le même temps, de plus en plus de commentaires ont commencé à apparaître concernant le manque d'explication et le contexte du jeu. Jusqu'à présent, ce n'était qu'un jeu d'arcade sans objectif clair. Il est temps d'y ajouter quelques éléments narratifs.





Rencontrez Titan and the Moon S / 2009 S1



Au début du jeu, un petit indice est apparu censé lier le scénario, la motivation du joueur et les conditions de victoire. Cela ressemblait à ceci:



Moon S / 2009 S1 est plein d'un riche minéral - le phlébotium, et vous, le joueur, êtes responsable de la protection des installations de la station pendant son extraction. La base est recouverte d'un champ qui peut la protéger des astéroïdes faibles. Cependant, à mesure que l'exploitation minière progresse, le noyau de la Lune devient plus lourd, attirant des astéroïdes plus rapides et plus dangereux qui peuvent endommager le bouclier et interrompre les opérations dans les installations.



Pour aider à la narration, le Titan a été introduit dans le jeu - un robot qui introduit d'abord le joueur au cours des affaires, puis agit comme un guide tout au long de l'intrigue. Titan a été conçu, modélisé et animé par Caleo Mendes, qui a également conçu l'interface utilisateur du jeu.



L'image ci-dessous montre la première version de l'introduction avec Titan, une nouvelle interface utilisateur et - en arrière-plan - un bouclier couvrant toute la Lune.



image



La version V0.8, Menu lunaire, est sortie le 26 novembre - quelques jours avant la date limite. Il comprenait une refonte importante de l'interface utilisateur ainsi que des informations sur le bouclier.



image



De plus, il y avait d'autres améliorations dans le jeu: les effets ont été modifiés, et maintenant il est devenu plus facile pour le joueur de basculer entre les armes en cliquant avec le bouton droit de la souris. De plus, l'interface de rechargement des armes a été modifiée: la tourelle affiche désormais des informations sur les deux armes à la fois. Cela permettait aux joueurs de les utiliser de manière plus réfléchie, passant de l'un à l'autre lorsque l'un d'entre eux était en temps de recharge.



Le tremblement de la caméra a également été amélioré pour améliorer la sensation de puissance des deux armes, et les effets de l'éclatement des astéroïdes ont de nouveau été modifiés. Notez que la plupart de ces modifications ont été apportées pour améliorer la version stable du jeu, et très peu de modifications significatives ont été apportées directement à la boucle de jeu principale.





La version finale et ses problèmes



La version finale V1.0a MoonGun est sortie le 29 novembre. Il a implémenté toutes les fonctionnalités de travail, encore plus de personnalisation et une expérience plus équilibrée pour la quête principale. Des astéroïdes légers ont été ajoutés dans les premières minutes du jeu et des astéroïdes plus meurtriers pour les étapes ultérieures. Il y avait déjà tous les effets sonores et la musique pour créer une atmosphère et une expérience de jeu complète.



Le jeu a également implémenté certaines commandes de réglage telles que des curseurs audio et de musique, ainsi qu'un curseur pour contrôler les effets de luminosité - comme l'a intelligemment mentionné l'un des testeurs. Et ajouté un avertissement d'écran de chargement informant les joueurs des effets d'éclairage puissants du jeu.



image

MoonGun version 1.0a





Commentaires et améliorations (futures)



Bien que le jeu ait reçu de très bons retours, il n'y avait toujours pas de temps pour s'améliorer sur certains points. Le plus important ici est que le jeu n'a pas de fin claire: vous ne pouvez pas y jouer. Si beaucoup d'astéroïdes tombent sur la lune, les mines cesseront de fonctionner jusqu'à ce que vous répariez le bouclier en dépensant les astéroïdes collectés, mais la base ne s'effondrera jamais.



Le jeu était censé être facile et ne pas punir les joueurs pendant qu'ils apprennent à le jouer. Et comme il repose sur des progrès continus, il semblait trop démotivant de laisser le joueur tout perdre pour ne pas avoir défendu la base. À en juger par les examens, cet aspect aurait peut-être dû être révisé et pensé à d'autres solutions.



De plus, il n'y a pas de cinématique finale dans le jeu. Après avoir terminé la dernière quête principale, le Titan apparaît et diffuse le dernier message, mais après cela, les joueurs peuvent continuer le jeu aussi longtemps qu'ils le souhaitent. Certains testeurs ont été tellement déçus qu'ils ont même écrit à ce sujet sur la page du jeu.



De plus, il s'est avéré que de nombreux joueurs sautent l'introduction et commencent à jouer au jeu sans comprendre son contexte et sa motivation. Ici aussi, vous pouvez penser à quelque chose pour que cela se produise le plus rarement possible.



image





Processus rétrospectivement



MoonGun ne sera certainement pas le prochain hit indie, mais cela n'a jamais été prévu. C'était plutôt une expérience de création de jeu qui a été très positive et qui a de nombreuses leçons à tirer. De plus, le résultat est bien un produit fini. Malgré le fait que le jeu n'ait aucune difficulté, il a été chaleureusement accueilli par les gens, en particulier en dehors du cercle d'amis et de la famille de l'auteur. Et pour un tel projet, c'est déjà une réussite.



Le flux de travail était basé sur les éléments suivants: atteindre rapidement une version stable du jeu, puis l'améliorer. En revenant sur l'évolution de ces 4-5 semaines, les principales étapes peuvent être décrites comme suit:



  1. Concept et prototype de la mécanique principale;
  2. Améliorer l'expérience et créer un jeu stable;
  3. Tests approfondis et mise en œuvre de la rétroaction;
  4. Développement de la mécanique, de la narration, de l'économie et de l'esthétique;
  5. Polissage.


Puisque l'auteur ne pouvait pas (et ne voulait pas) quitter son emploi actuel pour se consacrer pleinement à cette activité, le développement devait être travaillé tard dans la nuit et le week-end. Une méthode qui a beaucoup aidé à cela consistait à stocker le traqueur des problèmes identifiés dans un référentieltout le travail à effectuer pouvait être saisi . Cela a aidé à reprendre rapidement le travail sur le projet après un certain temps et à déterminer où vous vous êtes arrêté pour la dernière fois.



De plus, l'auteur s'est toujours efforcé de suivre la voie du moins d'effort. Cela ne signifie pas écrire du code paresseux ou rechercher de mauvaises solutions (le code source est disponible ici) - cela signifiait d'abord tester des approches simples avant de passer à des implémentations ou des refactorisations plus importantes.



Aussi, ne négligez pas les outils puissants d'Unity et les magasins d'actifs pour accélérer le processus de développement. Dans ce cas, DOTween , LeanPool et Cinemachine ont été les plus utiles .





Post-traitement (la magie que vous méritez)



L'ajout de couches d'effets de post-traitement permet de créer la bonne atmosphère dans le jeu et de créer un look unique. L'image ci-dessous montre une comparaison de la même scène avec et sans post-traitement: Jeu sans post-traitement (sur la PlayStation d'origine) et avec post-traitement (sur PC) En particulier, les effets suivants ont été utilisés:



image









  1. Lift Gamma Gain : amélioration de l'éclairage;
  2. Distorsion de l'objectif : l'image comme si elle passait à travers une vraie caméra;
  3. Aberration chromatique : pour créer une atmosphère de "distorsion cosmique";
  4. Grain de film : ajoutez du bruit et de la dynamique à la scène;
  5. Profondeur de champ : rend les objets flous pour ajouter du réalisme à l'image;
  6. Vignette : assombrit les bords pour que le lecteur se concentre sur le centre de l'image;
  7. Bloom : pour rendre la lumière magique!


Ici, vous pouvez voir comment ces effets se chevauchent:



image





Au lieu d'une conclusion



Tous les concepteurs et développeurs de jeux peuvent en témoigner: créer des jeux est un défi, mais toujours inspirant en soi. Chaque nouveau testeur qui revient avec des critiques positives vous donne de l'énergie et alimente la volonté de mener à bien le projet.



De plus, l'expérience avec Unity 3D vous aidera à passer du prototype à la production plus rapidement en un temps relativement court. Au cours du développement de MoonGun, diverses techniques de prototypage rapide ont été utilisées pour Unity 3D à l'aide d'outils tels que les événements Unity , les objets scriptables et les instructions LINQ . La plupart du contenu a été réalisé à l'aide du graphe Unity Shader et Variantes préfabriquées .



Cependant, ce jeu n'aurait guère pu être réalisé sans un plan et une stratégie clairs. Par conséquent, il convient de répéter une fois de plus qu'il est important de respecter d'abord des mécanismes simples, puis de développer le jeu en fonction de ceux-ci.



All Articles