SS Battle

Jeu vidéo -

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.

logo-app-dual 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.

logo-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.

logo-lib-gdx

Suite à différentes difficultés (surtout au niveau de la gestion du réseau), j’ai décidé de me diriger vers Unity.

logo-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.

code-class-ss-battle-ship code-class-ss-battle-card

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.

ss-battle-ship-standardo ss-battle-ship-standardo-stats

ss-battle-ship-flashi ss-battle-ship-flashi-stats

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.

ss-battle-ui-choose-ship

Une fois que les deux joueurs sont prêts, un compte à rebours est lancé et que le meilleur gagne.

ss-battle-gameplay

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.

ss-battle-updater

Les autres menus ont aussi été créé.

ss-battle-ui-settings ss-battle-ui-play-game

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