Space Rides

Style: projet 3D , projet scolaire

Plateforme: Windows

Logicielle et language utiliser: Unity, C#

Space Rides est un projet que j’ai conçu afin de pratiquer l’implémentations des principes de base de l'intelligence artificielle. Les systèmes de déplacement, de collisions et d’IA ont tous été créés de zéro et vont être expliqués plus bas dans la page. Le jeu est un simulateur de combat spatial où les participants doivent récupérer des bonus afin d’améliorer les statistiques de leurs vaisseaux. Mes contributions principales pour ce projet ont été la gestion de l’équipe, l'implémentation du système de déplacement et le système de détection de collisions.

Comme l’équipe était seulement formée de programmeurs, les modèles utilisés proviennent du jeu Mario galaxie.

Index des expressions anglophones:

System de déplacement = Steering behaviour

Mouvement

Déplacement

Afin d'implémenter un système de statistique, le système de déplacement du joueur et des IA est presque identique. Les deux acteurs utilisent principalement le comportement “atteindre” afin de se déplacer et ont une capacité de virage limité.


Joueur

Un système de carotte au bout d’un bâton est utilisé pour contrôler les mouvements du joueur. Le système de déplacement sélectionne un des neuf cubes placer en face du joueur pour contrôler la trajectoire du joueur. Ce système permet au joueur et à l'IA d'utiliser le même système de déplacement et donc d’utiliser le même système de statistique pour les deux. 

  

AI

Mouvement de l’IA

L’IA utilise un graphe de navigation pour se déplacer à travers le niveau. Ci, il n’a aucun objectif précis, l’IA va simplement sélectionner une node au hasard et utiliser l'algorithme A* afin de la rejoindre.

Prévention de collision

L’IA utilise une combinaison de 6 raycast pour éviter les collisions avec les murs. Trois rayons sont utilisés pour le devant de vaisseau, un au-dessus et un en dessous. Lorsque l’un des rayons détecte un obstacle, l’IA va immédiatement tourner pour l’éviter et un dernier rayon et lancer dans la direction du dernier rayon afin de détecter si l’obstacle en est encore présent.

Système de statistique

Un système de statistique est présent dans le jeu pour créer une variété et de permettre une amélioration du contrôle du vaisseau. Par exemple, collecter un bonus de vitesse augmente la vitesse maximale du vaisseau et le bonus de contrôle permet au vaisseau de tourner plus serré.

Collisions

Un système de collision est présent dans le jeu. Un vaisseau explose s'il rentre en contact avec un mur. Aussi un système de détection de collisions entre vaisseaux est présent. Le calcule entre la normale de la collision et le vecteur de vélocité de l'objet permet de savoir si une collision a eu lieu en face ou sur le côté du vaisseau. Ce système permet au joueur de percuter un vaisseau ennemi afin de le détenir.

Un exemple en vidéo

Coéquipier

Shadi Jiha

Runze Zhu

Next
Next

Virtual Neon