Origine

Tout est partie d'un modèle 3D que je finisais pour mon portfolio. Et d'un ami qui me disait qu'il le verrait bien dans un jeu vidéo. J'ai donc réaliser un prototype en deux semaines qui permettait de joueur à plusieurs en écran scindé avec un dizaine d'armes et dans un environnement destructible. Ce prototype m'a convaincu que le projet avait un certain intéret et s'est par la suite vu transformé par plsusieurs refonte et structuré pour devenir ce qui va suivre :

Concept

Hardbot est un jeu de tir à la troisième personne multijoueur en ligne. Le joueur est un pilote de Hardbot et participe au Hardtounament un compéttition de combat de robot. Son but entrée en l'arène et réaliser différent objectif pour récupérer des Hardcoin et divertir le public. Mais il devra surtout survivre aux pièges mortelle ennemis et aux autres joueurs pour resortir de l'arène avec ses gains et se hiser en haut du classement.

DeathMatch X BattleRoyal

L'arène est subdivisée en salle chacune ayant son propre environnement, ses propre règles et toutes plus mortelle les une que les autres.

Les joueurs peuvent circuler librement( la plus part du temps) entre les différentes salle. Si bien qu'il est tant possible de se retrouver avec une centaine d'autre joueur que seul.

La destuction du Hardbot d'un joueur dans l'arène signifie la perte de tout ce qu'il vous avait sur lui. Celà inclut les Hardcoins si difficilement accumulés, mais aussi les derniers modules high-tech qu'il s'est risqué à amener dans l'arène.

On lui fournira alors un nouveau Hardbot standard qu'il sera libre d'équiper de nouveau s'il en a les moyens et de retourner à n'importe quel moment dans l'arène.

L'objectif se hisser en haut du classement et y rester. Et pour seul récompense la gloire et un statue en or dans l'entré.

Servers

Room

L'arène est subdivisé en salle. Chacune d'elle corespond à un environnement physique que le client du joueur charge et dans lequel il peut évoluer. Les joueur n'échange d'information qu'avec les joueurs présent dans la même salle qui corespond à une instance sur le serveur.

Lorsque joueur passe une porte, son client va vérifier s'il existe une instance pour la salle de destination. Si c'est le cas il la rejoindra elle est tout les joueurs qui s'y trouve. Dans le cas contraire il créra un instance dans laquelle il sera seul. Instance de salle qui restera active pendant un certain temps avant de disparraitre une fois qu'il n'y aura plus de joueur à l'intérieur, détruissant ainsi tout élément dynamique de la salle tel qu'un objet au sol par exmemple.

Le monde est donc semi-peristant

Data Base

La base de donné SQL est hébergée sur les même serveurs que le site distint des serveurs de jeu.

Elle contient les identifiants, pseudo, et mot de passe hashé des joueurs

Mais surtout une copie à jour de l'état physique de chaque Hardbot, permettant d'alimenter les podiums qui affiche en temps réel l'équipement des meilleurs joueurs.

Launcher

Electron JS

Le Launcher à été réaliser avec le Framework Electron JS

Ce qui permet de le rendre aussi simple à développer qu'une page web et d'utiliser le même code source pour le render acessible sur toute les plateforme de bureau (les versions mobiles n'ayant pas besoin de launcher pour les même à jour automatiquement).

Fonctionnement

Au démarage le launcher vérifie s'il a une version du jeu et si cette dernière est la dernière disponible. Dans le cas contraire, il la télécharge, la décompresse, et nettoye les fichiers supperflues. Il permet ensuite de lancer le jeu et d'être directement connecter en faisant passer les identifiant comme paramètrez au lancement de l'application.

Prototype