Les smartphones sont de plus en plus performants et apportent dans notre poche beaucoup de choses qui étaient jusqu’à il y a quelques années seulement, réservées aux PC de bureau. Parmi cette liste de choses, nous avons bien évidemment les jeux vidéo. Ces bijoux de technologie ont un point fort que les PC n’ont pas (pour la majorité) : un écran tactile. Et on ne dirait pas comme ça, mais ça ouvre pas mal de portes en matière de gameplay mobile. Si on regardait comment ça marche avec Unity ?Lire la suite »
Étiquette : Script
Sauvegarder la progression du joueur
Dans les jeux vidéo de première génération, il n’y avait pas de sauvegarde. Le joueur devait terminer le jeu d’une traite, sans éteindre la console sous peine de tout perdre. Cela avait un réel impact sur la difficulté (ainsi que sur la satisfaction à terminer un titre).
Ce temps est bien loin, l’absence de sauvegarde également. Si certains jeux limitent la sauvegarde (dans les phases de combat pour Mass Effect), ou ne laissent carrément pas le choix au joueur (dans Rise of the Triads), le joueur peut quand même se raccrocher à une bouée en cas de pépin.
Aujourd’hui, un jeu vidéo sans sauvegarde est presque impensable. Je dis « presque » parce qu’il y a toujours moyen de se servir de ça comme élément de gameplay. Mais ça reste une exception. Voyons ensemble comment il est possible de stocker des informations de progression avec Unity.
Créer une plateforme automatique
Les plateformes automatiques, on on en trouve dans beaucoup de jeux. En général, plus particulièrement dans les jeux d’arène visant à faire s’affronter des joueurs pour son côté dynamique.
Ces plateformes ont une position fixe et une destination. Lorsqu’un joueur « monte » dessus, elle se déplace jusqu’à son second point d’encrage, attend quelques instants puis retourne à son point de départ.
Créer un gestionnaire de fondus audio
On ne le répétera jamais assez : pour bien travailler, il faut de bons outils. Unity gère nativement énormément de choses, mais pour ce qui est du détail, de la petite touche qui va donner encore plus de caractère à vos productions, c’est à vous de jouer… et de créer des outils adaptés.
Il est très simple de jouer un son ou une musique avec un composant AudioSource attaché à un GameObject. Mais dès qu’il est question de fondus audio, il faut le faire soi même. Ce n’est pas complexe en soi, mais lorsqu’il faut le coder à chaque fois, ça devient moins sympa. Et si on se créait un petit outil qui gère les fondus sonores ?
Créer une caméra de JRPG
Dans les JRPG, on retrouve régulièrement une caméra fixe dans un coin de la scène qui « suit des yeux » le joueur alors qu’il se déplace. Dès que le joueur s’éloigne de la caméra et entre dans une nouvelle zone, une nouvelle caméra est utilisée, et ainsi de suite.
Il peut également arriver que cette caméra soit sur un rail et se déplace en fonction de la position du joueur dans la zone. Dans ces deux cas, cela pose un problème au niveau de la gestion des inputs du joueur. Voyons ensemble comment gérer ça correctement.
Créez des scènes cinématiques avec iTween (2/2)
Mettre en place des animations est très simple avec iTween. Nous avons vu dans le tutoriel précédent comment mettre en place des animations basiques. Si vous arrivez tout juste, je vous invite à aller y jeter un oeil !
Nous allons maintenant passer à la partie avancée pour animer une caméra sur un chemin. L’objectif étant de créer une scène cinématique.
Créez des scènes cinématiques avec iTween (1/2)
Vous connaissez sans aucun doute les cinématiques, ces scènes animées entrecoupant les phases de jeu. Ces scènes cinématiques incorporées dans un jeu ont un but bien précis : faire avancer le scénario ou bien mettre l’accent sur un point précis de l’histoire.
Le composant principal de la création d’une scène cinématique est bien évidemment la caméra. Vous allez la déplacer, changer son angle… Nous allons aborder ensemble dans ce tutoriel comment mettre en place ce genre de mouvements de caméra et comment les relier ensemble pour créer une scène cinématique animée avec l’outil iTween.
Créez des obstacles dynamiques
Dans un précédent tutoriel, nous avons vu comment mettre en place la recherche de chemin (pathfinding) via le NavMesh. Ce système fonctionne parfaitement à une exception près : le NavMesh est statique. Il est généré depuis l’éditeur et ne changera plus du tout par la suite. Si ce détail peut paraître anodin, il ne l’est pas du tout en réalité.
Mais alors comment faire pour avoir des obstacles dynamiques comme par exemple une porte qui s’ouvre, un pont qui s’abaisse, ou encore… un très gros personnage qui bouche le passage ?
Utiliser une manette avec Unity3D
Avec Unity, vous avez la possibilité de paramétrer une série de touches. En faisant cela, vous rendez possible la personnalisation de ces touches sans avoir à le gérer vous même dans le code. Plutôt intéressant non ? Mais ce n’est pas ce point qui nous intéresse réellement.
Les manettes. De différentes formes, avec des boutons différents… le tout pour proposer une expérience de jeu différente. Je ne dirai pas « meilleure » car ce n’est pas toujours vrai selon les types de jeu et les personnes. La mise en place du support manette s’avère relativement simple si vous ne ciblez qu’une seule console. Attention, je parle bien de console, pas de PC. Mais dès lors que vous allez vouloir publier votre jeu sur différentes plateformes (ce qui reste quand même un des intérêts premier d’Unity), les choses vont se complexifier. Beaucoup.
Ajoutez des succès à votre univers
Les succès (achievements en anglais) se sont installés petit à petit dans le paysage vidéo ludique. Mais qu’est-ce que c’est qu’un succès exactement ? Un succès, c’est un marqueur, badge ou autre élément visuel acquis par le joueur en effectuant des actions précises. Par exemple : vaincre 1000 ennemis, ramasser tous les objets cachés… ou plus ironique : mourir 100 fois.
Un succès est associé à une action précise. Ce n’est pas quelque chose de vague, les conditions d’obtention doivent être claires et mesurables, au même titre que le calcul du score, de la perte de points de vies, etc.
Ce tutoriel est d’une difficulté élevée et demande de bonnes connaissances en programmation orientée objet.
Voyons ensemble pourquoi il est intéressant de les utiliser et comment les intégrer dans votre jeu.Lire la suite »