Partage
  • Partager sur Facebook
  • Partager sur Twitter

Space Conflict - Jeu (web) de stratégie SF

    27 mai 2019 à 20:47:07

    Bonjour à tous,

    Je reviens vous présenter un projet qui avait fait un bref passage ici-même il y'a quelques années.

    Le projet était en stand-by jusque là du à un manque de compétences de ma part pour le mener à son terme, mais aujourd'hui, je pense être mieux "armé" pour le réaliser.

    Bref, entrons dans le vif du sujet:

    Genèse du projet:

    Afin de mieux vous présenter l'origine du projet, je vous invite à faire un tour dans ma machine à voyager dans le temps. Nous mettons le cap sur l'année 2015.

    Pour faire court, j'étais à l'époque modérateur d'un jeu de stratégie par navigateur reprenant le lore d'une série SF bien connue de la pop-culture. L'aventure à travers ce jeu et cette communauté à pris fin pour diverses raisons laissant derrière elle plusieurs joueurs frustrés par la disparition de ce jeu. Nous aussi, modérateur, étions un peu déconcertés par la disparition de ce jeu qui avait un énorme potentiel à nos yeux.

    Devant ces événements, j'ai alors essayé de réunir un petit groupe d'anciens modérateurs, de joueurs et tenté de recruter des personnes avec un profil plus "technique" afin de faire revenir ce jeu d'entre les morts. Bien-sûr, nous souhaitions à l'époque repartir sur la même base au niveau du gameplay tout en créant un nouveau lore SF afin de s'éviter tous les problèmes liés à la propriétés intellectuelle que nous avions connus jusque là sur notre ancien jeu.

    Bref, vous l'aurez compris, nous n'avions pas vraiment de compétences techniques à l'époque. Nous avons donc essayé de recruter des développeurs ici même. Les problèmes ont rapidement commencés à saper notre motivation, c'était en effet très compliqué de piloter le développement d'un projet sans avoir les compétences pour appréhender la charge de travail ou encore, sans pouvoir apporter un support plus technique aux différentes parties prenantes de ce projet.

    L'équipe s'est rapidement dissoute et le projet est tombé à l'eau...

    Cependant, il restait néanmoins quelques vestiges du travail accompli:

    • Un cahier des charges très complet
    • Un document présentant le gameplay dans ses moindres détails
    • Les différents éléments du lore que nous avions crée/rédigé
    • Plusieurs maquettes et concepts de design

    J'ai bien évidemment conservé tous ces éléments dans un coin dans l'espoir qu'un jour, ce projet renaisse de ces cendres.

    La renaissance du projet

    Nous voilà de retour en 2019.

    Les choses ont pas mal évoluées depuis, surtout pour moi: Me voilà sur le point d'achever ma quatrième année d'ingénierie logicielle.

    J'ai beaucoup apprit pendant ce laps de temps, notamment en gestion de projet et en développement, acquérant ainsi les compétences qui me faisaient défaut en 2015.

    J'ai décider de reprendre (enfin de "commencer" plutôt) le développement de ce jeu il y'a quelques semaines. Je suis bien déterminé à le sortir ce jeu, au fil des années, je m'en suis fait un défi personnel.

    Je vais maintenant m'arrêter là sur la petite leçon d'histoire qui n'est pas forcément la partie la plus intéressante de ce projet.

    Présentation du projet

    Le jeu:

    Space Conflict est un jeu de stratégie prenant place dans un univers SF.

    Il sera jouable via un navigateur web et repose sur une mécanique assez similaires à certains jeux bien connus (Coucou Ogame) tout en y apportant des "nouveautés" ou plutôt "des divergences" afin d'offrir de nouvelles perspectives de gameplay.

    Chaque joueur prendra le contrôle d'une planète qu'il devra par la suite développer afin de la faire prospérer. Vous l'aurez deviné, cela impliquera de construire divers bâtiments et de les faire évoluer afin de produire des ressources, des troupes, des vaisseaux et autres éléments nécessaire afin de dominer l'univers.

    C'est là que la composante multijoueur entre en action: les autres joueurs feront tout pour imposer leur domination sur l'univers avant vous.

    Je sens maintenant la GRANDE question arriver: "Mais du coup, t'es bien gentil avec ton jeu, mais en quoi diffère t'il des autres jeux du même genre ?"

    Et bien sur la base, il ne diffère en rien des autres jeux similaires. (Oui je sais, ce n'est pas très vendeur de dire ça...). Pour commencer, et j'y reviendrai plus tard, ce jeu n'a pas vocation à rapporter de l'argent.

    Ensuite, les autres jeux se concentrent principalement sur un seul type de combat: terrestre ou spatial. Ils mixent rarement les deux. Bon d'accord, il y'en à quelques uns qui le font. Bon ben pourquoi ne pas ajouter un nouveau composant de gameplay ? -> L'exploration. Ah ? D'autres le font aussi ?

    Bon, très bien, il y'a pleins d'autres types de gameplay possibles que je souhaite à terme, intégrer au projet. Nous pouvons citer par exemple la production de masse, le commerce, la science ou encore la diplomatie (plus poussée que juste intégrer une alliance, bien évidemment).

    Je pense qu'il y'a encore plein de possibilités de gameplay qui n'ont pas encore étaient explorées par ce type de jeu, et je pense même que ceux qui prendront le temps de lire cette présentation en proposeront certainement d'autres.

    Le joueur devra donc choisir un gameplay vers lequel se "spécialiser" afin de prospérer. Cependant, nous serons tous d'accord pour dire qu'il est impossible de dominer un univers seul. Imaginons qu'un joueur se spécialise vraiment dans le combat spatial, il sera donc moins évolué (moins fort) sur l'exploration ou encore la production de ressources par exemple. S'allier avec un joueur ayant un bon niveau dans ces domaines pourrait donc être bénéfique aux deux joueurs -> Nous voyons donc apparaitre la composante "sociale" du jeu.

    Bref, je vais m'arrêter la avant que cette présentation ne devienne trop barbante. Je répondrai à vos questions concernant les différents gameplay si vous souhaitez en savoir plus sur ce sujet. Sachez seulement qu'il ne s'agira pas simplement de construire des vaisseaux pour ensuite se taper dessus avec d'autres joueurs.

    L'objectif du projet:

    Y'en a t'il vraiment un ?

    Je ne sais pas trop en fait. Je peux déjà vous dire que je ne fais pas ça pour l'argent en tout cas. En fait, je vois plus ce projet comme un enrichissement personnel, un cas pratique afin d'approfondir mes connaissances dans les différents langages de développement qui donneront vie à ce jeu. J'espère aussi apprendre beaucoup de choses au niveau de la gestion d'un projet. Et surtout, le point important, je souhaite réunir une petite communauté de joueur, de développeurs, de modérateurs et pourquoi pas des graphistes ou autres ? Bref, je ne veux pas que le coté "social" du jeu ne se reflète que dans le jeu: je souhaite en faire également une expérience sociale dans son développement, son amélioration, sa gestion et tout ce qui s'ensuit.

    Et comment tu vas faire ?

    En réalité, j'ai une bonne vision du résultat que j'attends au terme de ce projet.

    J'ai également une masse non négligeable de diagrammes (que je ne qualifierai pas d'UML mais presque) afin de prévoir l'imbrication des différentes couches logicielles qui vont me permettre d'atteindre mon but.

    Pour la gestion de projet, j'ai un trèèèèèèèès grand tableau kanban qui me permet de m'y retrouver dans tout ce foutoir.

    Au niveau des technologies, j'ai choisi de partir sur du C# et .NET Core pour le backend. J'ai choisi de créer la base de données en PostgreSQL bien que je pense également partir sur des technologies NOSQL hébergées dans le cloud pour les données non critiques tels que les systèmes de messageries publiques.

    Pour le Front, j'ai choisi de partir sur de l'Angular 7. Pourquoi ? C'est une technologie que j'apprécie et que je souhaite approfondir. Au pire, si je me plante, je pourrai toujours m'orienter vers autre chose... (Enfin bon, j'espère ne pas trop me planter quand même...).

    Avancement du projet

    Comme je vous le disais, le développement à réellement commencé il y'a quelques semaines et... sans me vanter, j'ai plutôt bien avancé je trouve.

    Qu'est-ce qui fonctionne ?

    - Ben... pas le mode web (serveur) en tout cas. Je pense qu'il s'agit là de l'étape intermédiaire dans ce le développement du jeu et j'en suis encore très loin.

    - La vue client (web) sera la troisième étape donc bon... n'en parlons même pas.

    Pour être honnête, je travaille sur les différentes bibliothèques de classes (les DLL pour les profanes) qui vont regrouper la partie "métier" (bizarre d'appeler ça comme ça pour un jeu) du code. Ainsi, je n'aurai ensuite qu'a importer ces bibliothèque de classes sur mon projet web afin de les "webiser". Je schématise au maximum afin de ne pas perdre les non-initiés, n'hésitez pas à me poser des questions plus techniques si vous le souhaitez.

    Aujourd'hui, j'estime qu'un tiers de la base de données est prête. Je crées les différentes tables au fur et a mesure afin de ne pas faire que ça et préserver les quelques neurones qui me restent d'une surchauffe qui leur serait fatale... Vous noterez que je parle ici de la création de la dite base de données et non de sa conception, celle-ci étant terminée depuis quelques temps déjà.

    Du coté du code, de nombreuses choses sont déjà prêtes:

    • Génération procédurale d'un univers
    • Inscription d'un joueur
    • Attribution d'une planète à un joueur (Aléatoire lors de l'inscription puis déterminée dans le cas d'une colonie)
    • Création du profil + paramétrage de l'utilisateur
    • Initialisation des scores du joueur
    • Initialisation des ressources et constructions du joueur.
    • Gestion partielle des ressources (Augmentation des ressources en fonction du temps qui passe et des taux de production du joueur)
    • Lister les joueurs et leur planètes
    • Quelques petits autres trucs mineurs.

    A cela s'ajoute une dose de tests unitaires.

    Je travaille actuellement sur l'intégration des bâtiments en base de données. C'est pas ce qu'il y'a de plus passionnant mais il faut bien le faire...

    Voilà, je pense avoir présenté au mieux le projet. En général j'essaye de faire un point sur l'avancement toutes les semaines (ou deux semaines en fonction de mon avancée).

    Je ne pense pas recruter de gens tout de suite, je pense qu'il est primordial que j'avance dans le développement du jeu avant d'y intégrer d'autres personnes afin de bien cadrer les choses.

    Je reste disponible pour répondre à vos questions. Je suis preneur de toutes les suggestions que vous voudrez bien me faire.

    Je remercie ceux qui ont eu le courage de lire mon pavé jusqu'ici, vous m'impressionnez car moi, j'aurai lâché avant !

    Je suis persuadé que j'ai fais pas mal de fautes d'orthographe, je vais continuer à me relire afin de les corriger...

    Enfin, j'espère que certains d'entre vous suivront le développement du projet. J'ai envie de partager cette expérience (et peut-être même le code) avec d'autres personnes.

    Voilà, je reviens vers vous très rapidement avec des nouvelles du projet.

    -
    Edité par Blackout75 27 mai 2019 à 20:54:18

    • Partager sur Facebook
    • Partager sur Twitter

    Space Conflict - Jeu (web) de stratégie SF

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    • Editeur
    • Markdown