Présentation
Avec 2 amis , nous avons décidé de créer un petit jeu vidéo. Une des personnes s’occupe de tout ce qui se rapporte au design (Mathieu) et l’autre du son et de la musique (Kilian). Moi, je m’occupe du développement.
Notre première idée était de nous inspirer d’un jeu appelé : Dual. Les mécaniques nous plaisaient, et nous voulions reproduire un jeu du même genre.
Dual
Suite à différentes réunions, nous avons décidé de partir sur une idée de vaisseau spatial. Le principe est d’avoir deux téléphones l’un en face de l’autre et de s’affronter en temps réel.
Mon but est donc de développer le jeu. Au départ j’ai décidé d’utiliser Android Studio.
Accompagnée de la librairie appelée « lib Gdx ».
Cette librairie, qui est open source, est un Framework écrit en Java qui permet de créer des jeux cross Platform (Jouable sur différentes platformes). Il supporte Windows, Linux, Mac OS X, Android, ios, Blackberry et HTML.
Suite à différentes difficultés (surtout au niveau de la gestion du réseau), j’ai décidé de me diriger vers Unity.
Unity est un moteur de jeu. Il permet la création de jeu en 2D et 3D. Il utilise des scripts écrient en C# et en UnityScript (langage proche du JavaScript).
Démarrage
Dans un premier temps j’ai créé ce qu’Unity appelle un « ScriptableObject » nommé « ShipCard » qui contient toutes les informations sur les vaisseaux et une classe « Ship », qui transfère toutes les informations de la carte en un objet réel.
Les classes ShipCard et Ship
Pour commencer, le designer a créé deux vaisseaux. Après avoir discuté entre nous, nous avions choisi différentes statistiques pour les vaisseaux.
J’ai ensuite créé une classe mère appelé « Ultimate » (Les Ultimates sont des capacités spéciales de chaque vaisseau). Un Ultimate est utilisable toutes les x secondes et a parfois un temps d’apparition.
Nous avons décidé d’ajouter deux Ultimates : le Dash et le Shield.
Par la suite, je me suis attaqué à la classe « Player ». Cette classe gère la création du vaisseau en fonction d’une carte choisie. Elle gère aussi les déplacements du vaisseau, le tir, etc…
Gestion du réseau
Le réseau fut la partie la plus compliquée. J’ai utilisé les scripts écrits par Unity comme par exemple LobbyManager. Ce script permet la gestion de lobby (sans déc ?). Il sert à gérer les joueurs avant de lancer le jeu, il permet au joueur hôte (celui qui a créé la partie) d’expulser un joueur. Sur cette partie les deux joueurs ont accès à un panel qui leur permet de choisir un des vaisseaux et un bouton qui leur permet de dire quand ils sont prêts.
Une fois que les deux joueurs sont prêts, un compte à rebours est lancé et que le meilleur gagne.
Finalisation
À partir de ce point-là, la base du jeu était faite, il restait plus qu’à créer tous les menus. J’ai donc commencé par créer le menu « Update ». Ce menu sert à chercher si le joueur a la dernière version. Ce menu est relativement simpliste, le jeu télécharge un fichier appelé « version » sur Google Drive qui contient le numéro de la dernière version et il la compare avec la version de l’application. Si la version en ligne est supérieure alors, le jeu propose au joueur de la télécharger sinon, le joueur peut continuer à jouer sur sa version actuelle.
Les autres menus ont aussi été créé.
Conclusion
Le jeu n’est pas encore disponible car il est toujours en cours de développement. Vous pouvez suivre l’actualité de ce jeu sur YouTube
Les futures prévisions pour le jeu :
- Modification des vaisseaux et des décors pour passer à de la 3D
- Ajout d’un nouveau mode de jeu : FFA (Free For All)
- Ajout de plusieurs autres vaisseaux et d’Ultimate