Bonjour à tous,
Arvi Teikari a gentillement répondu à quelques questions que je lui ai posées par mail. L\'objectif de l\'interview était de se focaliser sur le développement avec les logiciels Clickteam dans le contexte de son jeu à succès Baba is You. Je ne voulais pas être redondant avec des interviews déjà existantes de journalistes qui font ça bien mieux que moi. L\'interview étant en anglais, j\'ai essayé d\'être le plus fidèle possible lors de la traduction en français.
N\'hésitez pas à le suivre aussi sur sa chaîne twitch:
https://www.twitch.tv/hempuli.
Vous apprendrez certainement plein de choses sur le développement, le language lua et son extension dans les
logiciels Clickteam.
1) J\'ai lu une interview sur
gamasutra avec la réponse suivante:
Justin Aquadro avait fait l\'extension Xlua
plusieurs années plus tôt, puis l\'avait laissée dans un état presque terminé. Lukas a corrigé un bug assez
sérieux dans l\'extension pour la rendre plus agréable à utiliser, cependant. Comme indiqué précédemment,
j\'avais essayé de m\'éloigner de MMF à plusieurs reprises au fil des ans, mais je revenais toujours en
raison de la façon dont j\'étais habitué au programme; pouvoir utiliser un langage de script avec l\'outil
déjà familier était important pour moi car cela signifiait que je pouvais bénéficier de l\'apprentissage de
la langue tout en utilisant sa puissance avec MMF.
Quant à ce que lua a ajouté à mon ensemble
d\'outils, il y a quelques facteurs importants. Tout d\'abord, lua est beaucoup plus rapide que le propre
code de MMF - je pourrais sans ralentissement faire des boucles et
autres dans lua qui auraient au contriare ralenti MMF. Deuxièmement, la programmation visuelle de MMF n\'est
pas construite autour de fonctions ou de tables, ce qui signifie que certains éléments, par exemple la
récursivité ou les bases de données, sont très très difficiles à implémenter proprement dans MMF. Avec lua
dans mon ensemble d\'outils, j\'ai pu trouver des solutions beaucoup plus soignées à certains problèmes qui
auraient été maladroits à faire dans MMF, tout en implémentant certaines fonctionnalités dans MMF qui à leur
tour auraient été maladroites à gérer via lua. Un exemple de ceci est le code de poussée de bloc - si vous
poussez plusieurs choses à la suite, vous devez vérifier récursivement ce qui se trouve devant eux pour voir
si le chemin est bloqué. Dans MMF, faire cela est très difficile dans tout système plus compliqué, mais avec
lua, le processus était beaucoup, beaucoup plus simple.
4) A l\'exception de Lua, as-tu utilisé
d\'autres extensions de Clickteam Fusion 2.5? Si oui, dans quel but?
J\'ai beaucoup aimé
les maths quand j\'étais enfant et au lycée, bien que la logique n\'ait jamais été une grande partie de
ces études. J\'avais appris un peu la logique auprès de personnes extrêmement intelligentes que je
connaissais, mais même au moment où j\'ai eu l\'idée de Baba Is You, je n\'avais qu\'une idée très
superficielle du sujet. L\'idée principale de Baba était l\'inspiration de certains autres jeux de
puzzle auxquels j\'avais joué (Snakebird, A Good Snowman Is Hard To Build, Corrypt, Snakebird) combiné à
la façon dont mon cerveau interprétait le thème du Nordic Game Jam où j\'ai créé Baba Is You à
l\'origine, \"Not There\". L\'élément logique de l\'idée était plus une association mentale fausse
qu\'un concept profondément réfléchi.
6) Comment as-tu géré toutes les combinaisons
d\'opérateurs logiques dans votre code (cible, objet et verbes)? Tu as parlé de «solutions
involontaires» dans une vidéo Gamelab19. Comment as-tu géré ton code pour qu\'il fonctionne sans
\"planter\" ou \"se bloquer\"? Ou as-tu accepté que certains comportements \"buggés\" fassent partie
du jeu?
La plupart des mots de Baba Is You traitent assez directement des éléments de
gameplay, donc ce n\'est que très tard dans le développement que j\'ai commencé à traiter davantage
d\'éléments qui pouvaient planter ou boucler à l\'infini (à l\'exception de plus de bugs de codage
quotidiens.) J\'ai accepté dès le début. que certaines interactions de mots entraîneraient un
comportement étrange / involontaire, mais mon objectif était de les limiter à de rares cas. Mon objectif
depuis le début était de rendre le système de règles aussi dynamique que possible, ce qui a aidé à faire
fonctionner les différentes combinaisons de règles ensemble car je n\'avais pas à coder chaque
combinaison séparément. Quant aux «solutions involontaires», cela concerne davantage les problèmes de
conception de niveau que les problèmes avec la base de code sous-jacente.
7) Comment as-tu
géré la difficulté du jeu? Est-ce que tu as rassemblé toutes tes idées et les as trié en tenant
compte de ton ressenti ou des commentaires de différents utilisateurs?
C\'est à peu près
tout, oui. Parfois, j\'ai ajusté les niveaux plus tard en ajoutant / supprimant des éléments
supplémentaires dans les niveaux (pour \"brouiller\" / \"éclaircir\" la solution prévue), mais comme la
plupart des niveaux ont commencé avec une idée assez précise de ce que serait le \"truc\", il n\'y avait
pas grand-chose qui pouvait être ajusté à ce niveau et j\'ai donc opté davantage pour ordonner les
niveaux par difficulté perçue *après* leur mise en œuvre. Un résultat de cette approche était également
que toutes les sous-zones sur la carte ont des courbes de difficulté internes; le niveau final de la
zone A pourrait être beaucoup plus difficile que le premier niveau de la zone B, puisque les niveaux
sont classés par les mots utilisés dans ceux-ci entre les sous-zones et ensuite par difficulté à
l\'intérieur desdites sous-zones.
8) MP2 games (Mathias) a développé le port sur Switch.
Comment s\'est passée la collaboration?
MMF a des capacités de portage très limitées et
je savais que je ne pourrais pas porter le jeu sur d\'autres plates-formes sans aide. En tant que tel,
MP2 Games était le choix évident puisque la société s\'est spécialisée dans le portage de jeux réalisés
à l\'aide des outils Clickteam ainsi que d\'autres titres difficiles à porter. Nous avons commencé à
collaborer assez tôt dans le développement de Baba Is You et la collaboration a été extrêmement agréable
et fructueuse; Mathias est un autre programmeur extrêmement qualifié.
9) Quels sont selon toi
les meilleurs avantages du moteur de jeu Clickteam Fusion 2.5?
La meilleure
caractéristique d\'un tel outil est la rapidité avec laquelle vous pouvez démarrer un nouveau projet.
Cela est particulièrement évident lors d\'événements tels que les game jams - lorsque vous n\'avez que
48 heures pour faire quelque chose mais que le résultat n\'a pas besoin d\'être parfaitement poli, un
outil qui offre des outils pour le prototypage rapide est excellent. Dans cet environnement, les
principales limitations de Fusion - par ex. le manque de portage, diverses limitations sur des
fonctionnalités telles que la résolution du jeu, le contrôle de la manette de jeu, etc. - sont également
des problèmes beaucoup plus petits. Je n\'étais pas très confiant à propos de l\'idée de Baba Is You au
départ, mais grâce à MMF, j\'ai pu la tester et obtenir un prototype fonctionnel pendant le game jam, ce
qui m\'a permis d\'explorer le potentiel de l\'idée.
10) Selon toi, qu\'est-ce qui peut être
amélioré dans Clickteam Fusion 2.5 par rapport aux autres moteurs de jeu?
11) Pour ma dernière question, as-tu des projets, des idées de jeux à développer
avec Clickteam Fusion 2.5 en dehors de l\'éditeur de niveau que tu développes pour Baba is
You? ESA2 ou autre chose?
Oui,
j\'utilise l\'outil depuis si longtemps que la plupart de mes idées de jeu supposent encore
implicitement que j\'utilise Fusion. J\'ai des idées qui nécessitent des
actifs 3D et que je ne pourrais donc pas faire avec Fusion, mais beaucoup de mes futures idées
de jeux sont également telles que je pourrais continuer à utiliser le même outil, à condition de
pouvoir collaborer avec des entreprises telles que MP2 Games
où ces idées pourront se transformer en titres commerciaux complets. ESA2 est le plus évident, mais il y a aussi quelques autres concepts que j\'ai
imaginé.
Merci beaucoup c'est très intéressant :) Effectivement ce serai bien qu'il y ai une solution dans Fusion 3 pour intégrer facilement des scripts. J'ai regardé pour convertir l'objet Lua en html5 mais je n'ai pas eu le temps de trop m'y pencher.
Tres interessant cet interview !
Merci de l'avoir transmis ici !
Alors pour le coup, lua c'est top, mais pourquoi ne pas l'utiliser seul, avec love2d par exemple. Ce serait plus facilement portable... Des fois, la simplicité suffit ! :)
Effectivement, pleins d'extensions existent pour fusion, j'ai trop hate de voir voir ce qu'un fusion 3 offrira comme possibilités de cross plateformes ;), script etc...
Merci beaucoup pour cette interview, ce fut fort intéressant.
Je ne savais pas qu'Arvi Teikari avait développé son jeu sous MMF2 et non avec CTF2.5.
Curieux de voir ce qu'il va développer prochainement.