La dernière fois dans Developping, J'avais choisi mon moteur de jeu
- Unity - et j'avais commence à apprendre à l'utiliser
Mais il est maintenant nécessaire de révéler l'idée pour mon jeu,
et de s'y mettre pour le réaliser
Mais par où commence quand on développe
un jeu? Et Je pense que c'est une question vitale et importante
parce que, comme vous allez le voir,
si on prends la mauvaise direction
quand on commence à développer un jeu, cela peut être désastreux
pour le projet. Laissez moi vous expliquer.
Ok, donc commençons par l'idée pour ce
jeu que je vais faire
et préparez vous parce que c'est fou, un jeu 2D de
plate-forme en scrolling vertical. Oui je sais
tous les développeurs indé commencent par un jeu de plate-forme
en scrolling vertical. Mais je pense avoir de bonnes raisons.
J'adore le genre, les jeux de plate-forme
sont assez facile à faire
dans leur genre. Ce n'est pas non plus un MMO.
Et j'ai fait plein de vidéo à propos
du level design de jeux de plate-forme et leur character design,
qui nous seront utiles
Ce sera aussi, préparez-vous, un jeu de plate-forme
avec un twist unique
L'idée est que le personnage de mon jeu est magnétique.
Ce qui veut dire qu'il sera repoussé par certaines plate-formes
et attiré par d'autre. Et vous pourrez
changer la polarité avec un bouton
Cette idée vient en fait de ce jeu:
The Legend of Zelda: Oracle of Seasons
Dans ce jeu, vous avez un gant magnétique qui
permet à Link d'être repoussé par certaines surfaces
et être attiré par d'autres. Vous pouvez aussi l'utiliser
pour attraper des boules métallique pour résoudre un puzzle
ou combattre des ennemis. C'est un mécanique
assez cool mais assez limitée par le genre,
la vue par dessus, et bien entendu,
la technique limitée de la Game Boy.
Je me suis donc dit: Et sI j'empruntais
cette idée de gameplay et que je la mettais dans un autre jeu:
Un jeu de plate-forme 2D, rapide. Quelque chose
comme Celeste ou Super Meat Boy.
Un jeu ou il faudrait maitriser le magnétisme
en toute vitesse, fluidité et précision
Voilà l'idée. Et la question maintenant
Pour où vais-je commencer ?
Est-ce que je me lance dans Unity et je code directement?
Est-ce que je me lance dans Photoshop pour faire des artworks ?
Est-ce que réfléchit à l'histoire ou aux
personnages? Par où dois-je commencer?
Je vais être franc: Ce n'est pas le premier
jeu que j'essaye de faire. Depuis que je suis
un enfant, j'ai eu des idée pour mes jeux
et à certain points dans ma vie, j'ai essayé de faire
ces différents jeux avec différents outils.
Mais je j'ai jamais pu finir ces jeu et je pense
que la raison est toujours la même:
Je m'y prenais de la mauvaise façon. Laissez moi vous montrer
J'ai récupéré ce dossier de chez mes parents
et il est plein de note et de dessins et
d'idées pour un jeu que j'allais faire
quelques années avant de commencer GMTK
Ça, c'est un tapis de souris pour Starcraft Ghost
Le jeu n'est jamais sorti, non ?
Cela veut peut être quelque chose
Mettons le dans la pile pour eBay
Ce jeu allait s'appeler Carter's Curse.
C'était à propos du fameux archéologiste Howard Carter
celui qui a découvert le tombeau de Toutânkhamon.
Et dans mon jeu, tout du moins, il allait
aussi réveiller une ancienne malédiction égyptienne
et donc devoir combattre des zombies, des momies et d'anciens
dieu égyptiens. Je me rappelle avoir passé des heures
entières à dessiner toutes ces choses. Je veux dire … mais quel Nerd!
Bref. Comment alliez vous combattre ces
ennemis? La reponse: En résolvant des picross?
Picross est ce jeu de puzzle de logique, en grille.
un peu comme un sudoku. Nintendo a fait des tonnes
de jeux Picross. J'étais assez inspiré par les jeux comme
Bookworm Adventures où vous aviez un puzzle
en bas de l'écran, et résoudre le puzzle
endommageait les ennemis dans une petit scène de combat
en haut de l'écran. Mon idée était donc similaire.
vous aviez un grille de Picross
en bas de l'écran et Howard Carter devait
combattre des ennemis en haut de l'écran
J'ai commencé commencé à développer. Je faisais
le jeu sur un appli pour iPad nommée Codea qui permettait
de faire de jeux IOS sur votre iPad. Je l'avais déjà
utilisé pour faire un Picross assez standard
sur iOS, donc je savais que je pourrais surement le coder.
Mais je voulais que les graphismes soit incroyables.
J'ai donc lancé Photoshop et fait des tonnes
de sprites et trames d'animations.
J'avais un dossier Dropbox ouvert qui était rempli
de sprites et d'animations. J'ai fait des tonnes de personnages
différents. J'avais fait des fatalités pour Howard Carter.
J'avais créé un cutscene d'intro.
J'avais fait des menus avec des gros boutons à presser
J'étais vraiment inspiré
Mais j'ai réalisé quelque chose.
Quelque chose de très important. Quelque chose
préjudiciable au projet. Le jeu n'était pas bon
C'était vraiment mauvais, pas du tout fun à jouer.
Et plus je codais, et plus je développais
plus que je me rendais compte du problème: Picross
n'était pas assez profond pour
ce genre de jeu. On ne peut pas vraiment
avoir de tactique ou de stratégie. On ne peut pas changer
ce que l'ont fait en fonction de l'ennemi combattu
et au final, on oubliait totalement qu'on
combattait des ennemis. On pouvait ignorer la partie
supérieure du jeu et le jeu fonctionnerait encore
parce que tout ce que vous faisiez, c'était faire
des picross. Ce qui veut dire que je ne pouvais pas
rendre le jeu plus dur ou plus intéressant en fonction
de l'ennemi
que l'on combattait, et cela voulait dire que
le joueur faisait la même chose encore et encore.
J'avais créé un jeu qui était creux et répétitif et
ennuyeux. Et j'aurai pu le résoudre mais
j'étais parti trop loin et trop démoralisé
que j'ai juste jeté tout le projet.
Et donc, quel était mon erreur? Avec pas mal d'année de recul
Cela fait bientôt une décennie.
C'est assez évident ce qu'il s'est passé.
Quad vous faites un jeu, il y a beaucoup
de choses différentes à créer. Les principaux sont la music,
les graphismes, le game design
l'histoire, et le code. Et c'est assez facile
de penser qu'il sont tous égaux. Mais ce n'est pas le cas
Dans beaucoup de cas, le Game design n'est pas égal
mais plutôt la socle
sur laquelle tout le reste repose. Et si vous loupez
cette partie, tout le reste s'écroule
Je veux dire, vous pouvez corriger les bugs
et refaire les graphismes, mais si le gameplay
est fondamentalement mauvais, le projet
est parfois irrécupérable
Et c'est plus ou moins ce qui s'est passé
pour moi. J'ai passé tellement de temps sur les graphismes
et les animations qu'une fois enfin arrivé
au gameplay
Je me suis rendu compte que tout le jeu
était médiocre. J'avais créé toute une maison sur
des fondations bancales et j'étais surpris
et énervé quand mes toilettes ont traversé le plancher
A mon grand dam, ce n'est pas la seule
fois que cela m'est arrivé. J'ai voulu faire un point-and-click
du genre "film noir" avec une génération procédurale
unique des indices.
Mais j'ai passé tellement de temps sur l'histoire et rechercher
sur la période historique que je n'ai
jamais pris le temps de développer ce système.
Et je voulais faire un version moderne rapide
de jeu mobile Snake
mais je me suis tellement empêtré dans du bug fixing
en essayant d'avoir un code parfait pour le mouvement
que je n'ai jamais su si le jeu était fun avant
que cela me lasse et que je n'en puisse plus.
A chaque fois que j'ai essayé de designer mon
propre jeu, j'ai mis d'autre éléments
comme l'histoire et les graphismes avant
le gameplay. Pourquoi?
Je pense que ça vient avant tout de deux fausses
hypothèses. La 1ere hypothèse est que le jeu
avait toujours l'air cool dans ma tête,
j'ai donc pensé qu'il serait cool en vrai
une fois fini. Bien entendu j'avais tort
La 2eme hypothèse est que je ne
saurais pas si le jeu est fun avant de l'avoir créé
Je devais juste continuer à le développer
et à un moment, je saurais s'il est bon … non?
Non, encore faux!
Et c'est assez génant à dire parce les réponses
sont assez claire maintenant. Mais elle ne l'était
pas à l'époque. Ce n'est que depuis que je
réalise GMTK, depuis que j'étudie le développement de jeu,
depuis que j'interviewe des douzaines et des douzaines de game designers
que je sais comment les jeux ayant du succès commence.
Vous savez, les game designers ont des tonnes d'idées
tout le temps, et je suis sur qu'elles sont extrémement
fun dans leur tête. Mais les meilleurs game designers
savent que leur cerveau sont des gros menteurs.
Le seul moyen de savoir si une idée de jeu est bonne,
c'est de la développer et de la tester
Mais au lieu d'avoir à développer tout le jeu, les designer
développent … un prototype.
Un prototype est un banc d'essai brouillon pour une idée,
désigné juste pour voir si l'idée
est fun ou pas. Ces prototypes sont généralement
assez laid, avec
des graphismes non finis, ou des formes basiques
ou des sprites volés à d'autres jeux. Il sont souvent buggé et cassé
et il n'ont juste que le strict minimum pour tester
la mécanique. Ils sont
juste un version assez fonctionnels de l'idée
de jeu, développé aussi rapidement que possible
avec but simple de voir si l'idée fonctionne.
Est-ce fun ou intéressant? Et-ce
que ça vaut la peine? Est-ce un bon socle
sur lequel construire le reste du jeu ?
Et c'est ce que je vais faire. Cette fois-ci
je vais bien le faire. Je vais me focaliser exclusivement
sur fabriquer ce prototype et je vais m'y tenir.
et ne rien faut d'autre que tester
cette idée de jeu
Donc en terme de graphismes, je vais juste récupérer
des truc de Google Images. Il n'y aura pas de musiques
il n'y aura pas d'histoires. Je ne vais pas penser
au nom du jeu, ou des personnages.
Je ne vais pas designer l'icone de l'application
pour un jeu qui n'a encore été développé
Mark, tu est un idiot. Le code sera surement
buggé et cassé parce que je suis encore
en train d'apprendre Unity, mais il devrait
être suffisant
pour voir si cette idée marche. Juste un bac à sable
pour tester les mécaniques de jeu et voir ce qui est fun
Donc allons y et ouvrons Unity
La 1er chose que je dois faire, c'est d'avoir
un personne qui peut juste aller à gauche et à droite
et sauter, donc je vais devoir appliquer des forces sur
le RigidBody quand j'appuierai sur les bonnes touches
Ça a déjà posé quelques problèmes, ce qui n'est pas
un bon début, mais au final, j'y suis arrivé
Ensuite, j'ai ajouté un aimant dans la scène
et je devais faire en sorte que le personnage soit attiré par l'aimant.
Pour cela, je devais devenir un developper expert,
J'ai du utiliser mes capacités galactiques
de developpeur, et donc je me suis craqué les
doigts et j'ai tapé ces lignes de code … Comment
déplacer un RigidBody vers un autre objet?
Okay, j'ai googlé, trouvé du code
et copié/collé dans mon projet. Mais j'ai
fait en sorte de comprendre comment ça fonctionne
Basiquement, cela cherche la direction entre le
personnage et l'aimant et ça applique des force sur le RigidBody
dans cette direction. J'ai aussi modifié le code
afin que cela s'accélère plus on s'approche de l'aimant.
J'en ensuite fait en sorte qu'on puisse arrêter
l'aimant avec un bouton dans le but
que le personnage garde sa vitesse
afin de l'envoyer en l'air
Donc si j'ajoute une plate-forme ici, je peux
attirer le personnage vers l'aimant; puis couper
et sauter ici. Ce qui est assez jouissif …
Mais un peu dur à controler.
Mon code n'est pas parfait, cela devient vite
compliqué à gérer
Mais en recherchant des information, je suis
tombé sur quelque chose de très utile
dans Unity. C'est un composant intégré qui s'appelle
Point Effector et c'est tout simplement … un champ magnétique
Je ne sais pas comment j'ai pu le louper
l'icone est littéralement un aimant. Voila comment ça fonctionne:
Vous donnez à un GameObject un collider et un point d'effet
et ensuite un force d'attration.
Et quand le RigidBody entre dans le collider
il est attiré vers le centre du champ
Vous pouvez aussi utiliser les masque de calque
d'Unity pour qu'il n'attire que certains objets.
Cela rends clairement le jeu plus facile à développer.
J'ai donc décidé
de refaire le prototype. Et oui, le jeu
parait plus stable
C'était plus facile pour moi pour modifier
des choses, et je pouvais faire du truc cool comme
quand je place le point d'attraction sur les
pole de l'aimant, ceci se produit - ce qui est assez cool
Mais quand j'ai fait le 2e prototype, pour
je ne sais quelles raisons, j'ai décidé
de ne plus utilisé Mario, mais de le remplacer
par un image d'aimant pour le personnage principale
Et cela m'a donné une idée: Et
si le personnage n'était pas magnétique
mais qu'il y avait un aimant dans le monde du jeu
et si le personnage pouvait marcher et ramasser l'aimant
Pour faire cela, j'ai utilisé la fonction Joint
incluse dans Unity, c'est un autre composant.
Il permet à 2 RigidBody d'être connecté en utilisant
d'autre type de joint, comme
des gonds ou des ressorts. Donc maintenant
le personnage tenait un aimant, et si l'aimant
était attiré par un bout de métal, le personnage irait avec lui.
Jusqu'à que vous lachiez l'aimant
et que vous puissiez marcher de nouveau.
Et le gameplay que je voulais précédemment
d'utiliser la trajectoire de l'aimant pour envoyer
le personnage vers une plate-forme plus haute
pouvait simplement se réaliser en lâchant l'aimant
Cela permettait d'autres choses
Comme avoir 2 aimants, ou plus,
et vous pouviez, par exemple
placer l'aimant là-haut, puis quand un ennemi vous
poursuit, coupez le magnétisme et sprotch !
C'était plutôt cool. Cela pourrait
marcher. D'un seul coup, le jeu parraissait
plus intéressant que mon idée originale, ce que je dois
reconnaitre m'inquiétait
Quand votre personnage était magnétique, et
était attiré et repoussé, c'est assez simple
de perdre le contrôle, mais avoir l'aimant comme
un objet distinct voulait dire que par moment,
vous contrôlez parfaitement votre personnage, et un peu
moins aux manettes quand vous tenez l'aimant.
De plus, j'avais peur du nombre d'idées
que je pouvais avoir avec un jeu où le personnage
était magnétique. Mais dès que j'en ai fait 2
entités séparés, les idées se sont mises à fuser.
En plus, j'aime beaucoup les jeux où on
alterne entre 2 types de gameplay,
un peu, comme Mario Odyssey change, selon
si vous avez votre chapeau ou pas. Donc dans mon jeu,
votre personnage est agile, et peut sauter très haut
sans l'aimant, et lent et alourdi quand
il tiens l'aimant. Mais bien sur, l'aimant offre
beaucoup de possibilités incroyables
Ne soyez pas surpris qu'une meilleure idée émerge
pendant le processus de prototype
Comme nous avons vu dans l'épisode de GMTK The Games
That Designed Themselves, C'est assez courant que de nouvelles idées
émerge pendant qu'on prototype. Regardez
le jeu Crypt of the Necrodancer: Quand le jeu
était en design, c'était supposé être un rogue-like
avec un limite de temps stricte entre vos tours
Mais quand les developpeurs l'ont créé, il se sont rendu
compte que ce serait encore plus interessant
que, plutôt que ce soit un timer, que ce soit
sur le tempo d'une chanson
Donc les prototypes ne sont pas qu'un moyen
de tester et vérifier la validité d'une idée.
Ce sont des moyens de générer des nouvelles
et encore meilleurs idées
Pendant ce développement, j'ai découvert une
autre fonction dans Unity:
Elle s'appelle sprite shapes.
Et cela permet de créer des designs
de niveaux organiques assez cools,
comment on peut le voir dans les jeux Ori.
Mais pour mon besoin, j'ai juste mis un couleur basique,
et cela me permettait de designer mes niveaux
assez rapidement. Je pouvais créer rapidement un zone
de prototype en déplacant des handles
comme j'aurai pu le faire dans Photoshop.
Donc j'ai refait mon prototype, et je voulais cette fois
que le personnage soit plus facile à contrôler
quelque chose de plus proche d'un vrai personnage de JV.
Je ne voulais pas m'embêter à coder des mouvements
et des sauts, donc j'ai téléchargé
un script de contrôle de personnage sur Internet.
Cela marchait bien, je pourrais me concentrer à
le tweaker ou le refaire ou peu importe plus tard.
Pour le moment, je n'avais pas le temps pour ça.
Dans le prototype, j'ai aussi commence à regarder
à des mécanique comme être capable de
lancer l'aimant et ensuite le rappeler à soi
comme Thor et son marteau
Et parce que le RigidBody de l'aimant se cogne
sur le personnage, cela donne un
petit feedback quand vous attrapez l'aimant.
ça donnait un sentiment de jeu libre, c'était assez grisant
Et j'ai eu l'idée de plusieurs scenarii,
où on pourrait utiliser l'aimant
comme le lancer contre un mur pour créer un plate-forme.
Peut-être le connecter à un piston et
le déconnecter au bon moment pour l'envoyer en l'air
Peut-être changer la polarité pour
sauter entre 2 tapis roulants. Ou pourquoi pas faire descendre
cette plateforme, monter dessus
et ensuite changer la polarité pour être
projeté en l'air? Ça a l'air assez cool, non?
Ça ressemble à un jeu vidéo
C'est assez fun !
Et c'est à ce moment là que cette idée de
gameplay montrait du potentiel.
C'est original, j'avais déjà vu des jeu basé sur le
magnétisme, mais rien de similaire
Cela permet à la fois des gameplay de plate-forme
et de puzzle. Les idées pour ce jeu fusaient
rapidement et simplement, et je pouvais créer plein
de niveaux assez différents. Et, le mieux,
c'est que c'était très fun à jouer. Je pouvais juste lancer
cette scène dans Unity, et prendre ma manette
et c'était très agréable. C'était un bon signe
Et c'est le pouvoir des prototypes:
Vous pouvez les utiliser pour tester si une idée de gameplay
est bonne ou pas. Et si vous êtes vraiment chanceux
vous découvrirez des nouvelles idées émerger
pendant cette phase de prototype
Je pense que vous devez avoir une certain niveau de
discipline personnelle. Vous devez vraiment vous dire:
"Je ne ne vais pas concentrer sur rien d'autre,
juste le gameplay". Et, je veux dire, c'est dur!
Dans cette vidéo, je ne vous ai pas montré
la semaine entière que j'ai passé à regarder les effets de particules
les shakers, et les élément d'UI, et tout ça.
je serais directement parti dans mes vieux travers
de me laisser distraire et embarquer dans des choses
non utiles pour le moment. Mais heureusement, j'ai su
me limiter, et jeter ce prototype avant de me remettre
aux choses vraiment importantes
Et au final, je pense que ça a marché, j'ai fini
par créer quelque chose qui est vraiment fun,
qui a du potentiel, et sur lequel j'ai hate de travailler.
Mes jeux précédent sur lesquels j'ai
travaillé quand j'étais plus jeune étaient faits
avec l'espoir qu'ils seraient funs,
ce qui n'est pas la meilleur façon de faire
en tout confidence. Mais maintenant
mon socle semble assez robuste,
et les autres aspects, l'histoire
la musique, les graphismes, tout peut être produit avec la
confidence que le base sous-jacente est solide
Et cela semble la façon de faire des jeux:
Faire un prototype. La seule question, c'est:
Qu'est-ce que je fait maintenant
Je suppose que nous verrons celà
dans le prochaine épisode de Developing
Merci beaucoup de m'avoir regardé, et j'espère
que vous me suivrez lors du prochaine épisode de ce voyage. Au revoir!
Cette idée vient en fait de ce jeu:
The Legend of Zelda: Oracle of Seasons
Flute. De ce jeu. Mince
De ce jeu. Vient de ce jeu. Ce jeu.
Ce jeu. Ce jeu. ce jeu: The Legend of Zelda:
Oracle of Season. Cette idée vient en fait de ce jeu:
The Legend of Zelda: Oracle of Seasons
C'était plutôt pas mal!