Novae : chronique de la création d'un jeu sur iOS 1/2

Novae : chronique de la création d'un jeu sur iOS 1/2

Novae : chronique de la création d'un jeu sur iOS, par Dominique Vial — Domsware

Cet article comprend 2 parties.
Accéder à la seconde partie

Présentation

Mon nom est Dominique Vial. Je suis développeur indépendant sous le régime d'une entreprise individuelle : Domsware (contraction de Dominique et Software). J'habite à Toulouse.

Novae est le premier jeu que je réalise sous iOS. Il ne s'agit toutefois pas de ma première application puisque je suis l'auteur de CoachMyRide, un utilitaire d'entraînement cycliste, et j'ai participé à d'autres réalisations.

Avant de commencer Novae, je me considère comme relativement novice en développement iOS. Je ne connais qu'une partie des domaines couverts par iOS. Je n'ai que quelques centaines d'heures de pratique du langage Objective-C et de l'environnement iOS. Selon certains, il faut 10 000 heures de pratique pour se dire développeur dans un langage !

Docteur et Ingénieur en Informatique Industrielle, j'ai exercé dans de nombreux domaines d'activité : la robotique, l'aéronautique, le spatial, l'internet. Dans différents secteurs aussi : l'industrie, la recherche, l'enseignement et la formation ou encore le milieu artistique. Mon langage de prédilection est l'Ada, orienté objet, langage né au tout début des années 80.

C'est ainsi que je pars sur le développement de Novae.

Comment se crée un jeu ?

Ça a commencé comme ça : « Je veux faire un jeu sur iOS et j'ai une idée de jeu originale ». Pour Novae, je suis parti d'une idée originale que j'ai menée au bout. C'est aussi simple que ça. Je ne me suis pas inspiré d'un jeu existant bien qu'évidemment les influences existent !

Jeux vidéo et programmation

Question jeu vidéo, je suis de la génération Atari, Coleco, Vectrex… Et Videopac ! Tous les copains avaient une Atari VCS 2600. Pour Noël, le déballage des cadeaux a révélé au grand dam, effroi, dégoût, et stupeur : une infâme Videopac ! Ce jour-là, le père Noël est bien mort ! Depuis j'en ai gardé une forte rancune contre les agents commerciaux qui refourguent n'importe quoi aux clients crédules et perdus.

L'infâme Videopac

Le Videopac de Philips

Pour la programmation, cela a commencé au collège, en 5ième, dans une salle informatique déserte, perdue au fond d'un couloir (ambiance Les Envahisseurs). Et c'était en solitaire, avec un Thomson TO7. En peu de temps j'ai développé mon premier programme : un jeu. Un Canadair qui doit éteindre les flammes d'un incendie.

Bref.

Cela faisait longtemps que je voulais faire un jeu. Et cela faisait longtemps que milles excuses valables me retenaient : le temps, les moyens, les "ça ne marchera jamais", les "tu ne sais pas faire cela"… Et puis je me suis décidé : je vais faire un jeu. Et à ce moment-là, l'idée de Novae est venue. Ou bien le contraire, je ne saurai dire.

L'Idée

Un jour donc - situons-le entre la mi-octobre et le début novembre - l'IDÉE est venue. Pas dans les moindres détails, mais de façon plutôt brute : une notion de gravité centrale et de rotation. La première chose que je n'ai pas faite a été de me jeter sur le clavier et foncer tête baissée dans le code. Au contraire, j'ai pris les outils de base du développeur : papier, crayon et gomme. Au fur et à mesure que je posais les idées dans un cahier, d'autres naissaient. Il convenait de les noter afin de ne pas les perdre, mais surtout de ne pas les suivre et ainsi se perdre.

Tout commence par la conception...

La première mouture du jeu a été une version papier. Elle est composée de post-its de différentes couleurs, placée sur la porte d'un placard chez moi. L'un des avantages des post-its est qu'il peuvent facilement se repositionner. C'est ainsi qu'ont été établis les fondements de Novae.

Version papier préliminaire. Les post-it ne servent pas qu'aux méthodes agiles !

Un petit détail avant de continuer : le nom initial du projet était Rubber Soul. Allez savoir pourquoi… J'ai toujours considéré qu'un jeu vidéo était le type de logiciel le plus dur à réaliser. Non pas à finaliser ou à faire fonctionner, ce qui au fond n'est pas si compliqué, mais à faire fonctionner "correctement". C'est-à-dire à produire l'effet désiré sur le joueur. Nous avons tous eu entre les mains des "beaux" jeux, époustouflants, mais fades et au final peu intéressants. On y joue une fois et puis le jeu n'est plus jamais lancé.

Première maquette de Novae en Ada sous Debian

Les jeux référents

Je n'ai pas été isolé du monde depuis ma petite enfance, je ne vivais pas dans une grotte en pleine forêt, coupée de tout. Ainsi il apparaît évident que j'ai été influencé pour la réalisation de Novae. Toutefois, je n'ai pas cherché à reproduire un existant, mais ai plutôt voulu suivre ma propre voie en me mettant des œillères lors du développement afin d'éviter de me laisser influencer trop tôt. Plus tard, lorsque Novae a été suffisamment mûr, j'ai commencé à comparer avec l'existant pour l'améliorer.

Je ne suis pas un "Gamer" dans l'assertion traditionnelle du terme. Ma dernière console a été une Nintendo Game Cube utilisée pour Zelda, Pikmin et quelques séances de Burnout. Depuis, plus de consoles de salon, mais seulement une Nintendo rose de je-ne-sais-plus-quel-modèle, uniquement pour jouer au Zelda qui accompagnait sa sortie. Et puis les appareils iOS : iPod touch puis iPhone puis iPad.

Je joue à des petits jeux, ce que j'apprécie c'est de pouvoir lancer une partie pour me détendre. Ainsi, je n'aime pas trop les jeux avec la pression du temps et ceux où il faut des réflexes affûtés. Tout comme les jeux stressants – je me rappellerai toute ma vie du bond au plafond que j'ai fait lorsqu'un chien zombie aux yeux rouges a surgi sur l'écran du téléviseur dans le premier épisode de Resident Evil ! Il était 1 heure du matin et, pris par l'ambiance, j'ai vraiment eu peur ! Ha ha ha !

Les jeux qui m'ont le plus marqué sont Infernal Runner, The Sentinel, Dungeon Master, Myst et enfin Zelda, the Wind Waker. Pas des jeux violents, énervants, stressants. Des jeux qui m'ont captivé et m'ont fait m'évader. Je me rappelle aussi de ce jeu de course sur PC qui a entamé mes nuits de travail durant la thèse : Screamer.

Dungeon Master : le jeu qui a failli me coûter le bac de français !

Dungeon Master

Infernal Runner sur Oric Atmos

Infernal Runner

Parmi les références sur iPhone, il y a Drop 7, GeoDefense, Land Air Sea Warfare HD et très récemment Puzzle Quest 2 sur iPad. J'ai également proposé des jeux comme sujet de projet informatique à des étudiants en école d'ingénieur. Ces jeux étaient Same Game et Drop 7.

Je voulais ainsi faire un jeu reposant, qui permette de s'évader. Un jeu pour me détendre entre deux activités, après une grosse journée de travail et aussi, avant de dormir.

L'ambiance du jeu

L'une des plus grosses difficultés de l'activité de développement est selon moi le "nommage" des choses. Lorsque je développe, il m'arrive régulièrement d'arrêter complètement toute activité pour consulter un dictionnaire de synonymes ; surfer des heures sur le net ; consulter le premier quidam que je croise dans la rue (ou presque !) ; regarder un film ; lire un bouquin… Ceci afin de trouver le nom qui décrit bien la "chose", le "truc" sur lequel je planche. Sans cela, ce n'est pas clair, pas bien "disposé" dans mon esprit.

Aussi, très tôt dans le développement de Novae, disons plutôt Rubber Soul à ce stade, j'ai cherché à nommer les entités que je manipulais. Dois-je appeler cela un pion, une pièce, une brique… Comment s'appelle cette action : suppression, élimination, absorption… Il est probable que pour le lecteur cela paraisse dérisoire néanmoins, en ce qui me concerne, j'en ai besoin.

Pour y arriver, je me mets en recherche d'inspiration et tout média est bon à prendre : le surf sur internet, un film, des ouvrages scientifiques, un roman, la musique, des "trucs" vus dans la rue…

À force de fouiller dans le domaine des phénomènes physiques je suis parvenu à trouver le nom exact de celui utilisé par Novae : l'accrétion. De cette découverte a découlé toute l'ambiance, spatiale, du jeu. Et le nom final, Novae, bien plus tard. Pour la petite histoire, la racine latine du mot "accrétion" est accretio : c'est ce nom qui a longtemps eu la cote pour le nom final du jeu.

L'accrétion désigne l'accroissement par apport de matière

L'accrétion désigne l'accroissement par apport de matière - crédit image

Le contexte était posé : l'astrophysique, l'espace, la Science-fiction. J'ai alors passé du temps sur le site de la NASA et plus spécifiquement sur celui de la mission Chandra pour m'imprégner de cette ambiance et qu'elle diffuse ensuite dans le jeu.

Pour les films cela a été de la SF : la série des Aliens, Prometheus, Blade Runner, Sunshine… Et pour la musique, notamment Pink Floyd, Daft Punk, Matmos, Archive, Motorbass…

Tout naturellement j'ai orienté le visuel du jeu vers ce thème de l'espace : fond noir et galaxie en fond de jeu. Dans les versions de tests, la galaxie était animée d'un très lent mouvement de rotation horaire pour aider le joueur à assimiler le sens de rotation de l'accrétion.

Mise à jour : la version actuelle du jeu comporte cette rotation accompagnée en plus d'un effet parallax sur iOS 7.

Je souhaite que Novae reste sobre au niveau visuel et sonore. Il y aura des animations, mais les plus discrètes possible ! Mon objectif est de rester focalisé sur la mécanique du jeu et de ne pas noyer le joueur sous une avalanche d'effets "Waoouuh !"

J'ai rassemblé les sonorités qui me plaisaient et j'ai acheté l'application Animoog afin de jouer avec des sons similaires à ceux du Dark Side of the Moon de Pink Floyd. C'est peut-être de là que proviennent les couleurs des pions… L'ambiance sonore du film Sunshine m'a beaucoup marqué également : les morceaux de Underwold, mais aussi quelques "sons de l'espace". Un exemple.

Affiche du film Sunshine

Pour réaliser l'esthétique de Novae j'ai fait appel à un musicien et à un graphiste à qui j'ai transmis tout ce matériel décrivant ma vision de l'ambiance du jeu.

Règles du jeu et jouabilité

Règles du jeu

Le principe de base du jeu, l'accrétion, existait depuis le début, mais pourtant les règles de jeu n'étaient pas posées définitivement.

Le principe structurant l'action était acquis : le joueur pose des pions et il essaye de créer des correspondances pour supprimer un groupe de pions. Lorsque les pions sont supprimés, ils libèrent un espace qui est alors récupéré par les pions alentour en suivant les règles d'accrétion. Cela semblait pouvoir donner lieu à un joli effet visuel.

Description du principe original de positionnement des pions dans Novae

Le principe de suppression de groupes de pions (quand un groupe doit-il être supprimé ?) n'était, lui, pas finalisé. La première idée a été de supprimer des groupes de formes données en reprenant les polyominos popularisés par Tetris. Je n'ai pas donné suite à cette idée et n'en ai même pas codé une maquette informatique, je la trouvais trop compliquée pour le joueur.

La seconde idée a été d'absorber les groupes de pions lorsqu'ils sont en contact avec le centre. Le centre étant de forme carrée, il possède 4 côtés qui permettent la formation de 4 groupes de pions similaires. De ce nombre de côtés se déduit le nombre minimal de types de pions différents pour que le jeu ait un minimum de difficultés : 5. En deçà, le jeu ne présente aucune difficulté, car il suffit d'attribuer un type de pion par côté du centre. Quand au nombre minimal de pions constituant un groupe pour que celui-ci soit supprimable, je suis parti d'emblée sur 4, nombre qui n'a pas changé par la suite.

L'élimination de groupes sur la grille de jeu provoque le repositionnement des pions restants qui cherchent à se rapprocher du centre. Cela peut conduire à la formation de nouveaux groupes supprimables ou bien à la perte de la partie : si aucun groupe ne peut plus être en relation avec le centre.

Jouabilité

Depuis le début du développement, j'avais 2 craintes sur la jouabilité : - que le jeu ne soit pas intéressant, "belle idée, mais pas prenant et pas addictif". - qu'un méga joueur trouve une faille qui enlève tout intérêt au jeu.

Le seul moyen d'éviter ces 2 points était de tester le jeu le plus longtemps possible, avec des personnes de niveau et de vécu différents.

C'est donc avec ces règles et réglages que les premières versions du jeu ont été distribuées à un premier cercle de testeurs (4-5 personnes). Les avis ont été tout de suite unanimes : le jeu est plaisant et même addictif. À chaque fin de partie, on le relançait pour essayer d'aller plus loin. Un bon point que cela !

Le principe de base étant accrocheur : il reste maintenant à faire en sorte que le joueur souhaite progresser dans le jeu. L'intégration prévue au Game Center y contribuera, mais ne suffira pas.

Les testeurs m'ont soumis nombre d'idées s'ajoutant aux miennes : je ne les présente pas ici, car certaines feront l'objet de mises à jour du jeu actuel ! Parmi elles, il y en avait de "mauvaises" : notamment donner une chance au joueur de rejouer son dernier coup lorsque l'on se plantait. J'ai refusé cela ! D'une part, dans un jeu, quand on se plante, on se plante et d'autre part, la faute n'en revient qu'au joueur qui n'a aucune pression temporelle pour calculer ses coups. De plus, je voulais que le jeu reste le plus simple possible et pour cela, chercher à enlever des choses plutôt qu'à en rajouter.

J'ai toutefois essayé une modification, dont l'objectif était d'augmenter la stratégie du jeu : rajouter un bonus qui permette au joueur de passer le pion courant lorsque celui-ci ne lui convient pas. J'ai appelé ce bonus "énergie". Il comporte 4 niveaux, les 3 premiers donnant des bonus de rejets supplémentaires de pions au joueur, le 4e et dernier permettant au joueur de vider totalement la grille.

Simulations de rendu pour différents types de dyschromatopsie dont le daltonisme

Comparaison de rendus pour le mode daltonien. De haut en bas : mode daltonien désactivé et activé. De gauche à droite : vision normale et 2 simulations de daltonisme sévère. Pour le mode daltonien notez l'utilisation de motifs géométriques plutôt que d'aplats de couleur.

Cette modification a été mise en place pendant environ 3 semaines. Au bout de ce laps de temps, j'ai constaté que je prenais moins de plaisir à jouer. Idem du côté des testeurs… Ça n'allait pas.

À chaque changement affectant le game play, les 2 craintes précédemment énoncées me revenaient : est-ce que le changement, même minime, que je viens d'effectuer casse tout ? Dans le cadre de cette précédente modification, il était devenu évident que c'était le cas. La personne pouvait jouer plus longtemps, mais le jeu était devenu moins intéressant.

Je suis alors revenu en arrière en conservant le principe de ce bonus d'énergie, mais en le simplifiant : 1 seul niveau d'énergie qui, une fois atteint, vide automatiquement la grille et permet de passer au niveau supérieur. Les testeurs et moi-même avons repris rapidement le goût du jeu ! Le principe de fonctionnement du titre était trouvé.

Avec un peu de recul, il est étonnant de constater à quel point une légère modification dans la conception du jeu, au niveau des règles, mais aussi de la réalisation (graphisme, animation…) provoque un impact important chez le joueur : le battement d'ailes du papillon au large du Brésil…

Pour motiver davantage le joueur et conserver à Novae son attrait le plus longtemps possible, je me suis mis à la recherche d'articles sur la jouabilité des jeux vidéo. J'ai acheté un ouvrage dont la référence revenait souvent : A Theory of Fun for Game Design de Raph Koster (19€ chez Amazon). Tout d'abord, j'ai trouvé ce livre extrêmement intéressant : je l'ai dévoré en un week-end ! Ensuite, sa lecture m'a beaucoup apporté, d'une part en validant les choix déjà effectués pour Novae et d'autre part en confirmant l'intérêt de la mise en place du Game Center.

Le résultat final

L'image ci-après montre une vue finale de l'écran de jeu de Novae. La barre d'énergie se trouve en dessous du score et l'indication des pions courant et suivant, en haut à droite, à l'opposé du score. Pour guider le joueur dans le placement des pions, l'axe horizontal et l'axe vertical sont affichés en gris sombre.

Le résultat final pour Novae (version 1.0)

En posant le pion courant - de couleur rouge - au nord, un groupe de 4 pions rouges est constitué. Ce groupe est supprimable puisque 1/ sa taille est supérieure ou égale à 4 et 2/ il est en contact avec le centre (par un des côtés du centre). La suppression de ce groupe rouge entraîne le repositionnement des pions mauves (en bas à gauche) et bleus (en bas). Les pions jaunes (en haut à droite) n'ont pas bougé puisqu'ils sont contraints par le mouvement de rotation dans le sens des aiguilles d'une montre.

Le résultat final pour Novae (version 1.0). Un exemple de coup

En posant le pion courant (bleu) au sud, on supprime le groupe bleu ainsi constitué ce qui entraîne un nouveau replacement des pions.

Le résultat final pour Novae (version 1.0). Un autre exemple de coup

Chaque suppression de pions entraîne l'augmentation du niveau dans la barre d'énergie qui, une fois pleine, vide la grille et ouvre le niveau suivant. Plus le niveau de jeu augmente, plus l'énergie nécessaire pour accéder au niveau supérieur est importante : le jeu progresse ainsi en difficulté.

Fin de la première partie de cette article.
Suite..


Cette publication et son contenu sont mis à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 4.0 International. Des droits spécifiques peuvent s'appliquer à certains contenus et sont alors indiqués.