Galaxia Online

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bannière

Bonjour à tous,

Je suis Theo4016, familier du site depuis quelques mois maintenant. Dans la "vraie" vie, je suis étudiant en double diplôme en école d'ingénieur et de commerce.

Si je viens ici, c'est pour vous présenter un projet qui me tient à coeur. Son nom est Galaxia Online. C'est un jeu de type 4X par navigateur, que je vais vous décrire un peu plus dans le détail.

Présentation de Galaxia Online

Naissance du projet

Tout d'abord, je suis un grand fan de science-fiction, et de jeux ayant cette thématique (Deus Ex, la série X, etc). D'autre part, j'aime énormément les jeux de stratégie, comme Civilization ou la série Total War. J'ai également joué à bon nombre de jeux par navigateur, parmi lesquels, évidemment, Ogame.

Il y a plus d'un an, je suis tombé sur un jeu développé par un studio français (Amplitude Studio) : Endless Space. J'ai immédiatement accoché, et j'y ai passé de nombreuses heures.

Pendant ce temps-là, je comparais ce jeu avec les jeux de stratégie par navigateur qui existent à l'heure actuelle : la plupart sont somme toute assez basiques (ce qui n'empêche pas qu'ils aient une certaine profondeur tactique). On retrouve quelques ressources, quelques vaisseaux, pas ou peu de diplomatie, etc.

Endless Space, c'était l'inverse : tout était riche et complexe, et m'immergeait complètement dans l'univers du jeu.

J'ai donc décidé que j'aimerais bien redonner un coup de jeune à ce genre de jeu par navigateur, en m'inspirant d'Endless Space.

Généralités et avancement

Galaxia Online est donc un jeu de stratégie par navigateur, au tour par tour. Chaque joueur commence avec un système stellaire, qu'il va devoir exploiter afin de s'étendre dans la galaxie, en développant sa recherche, son industrie et son armement.

Il devra tenir compte de nombreux paramètres pour gérer au mieux son empire : la satisfaction, la population, les anomalies planétaires, etc.

Je n'ai pas encore décidé si une partie aura une condition de victoire ou pas. Chaque système a ses avantages et ses inconvénients, et j'attendrai d'avoir un retour de la communauté quand elle sera formée à ce propos pour prendre la décision.

En ce qui concerne l'avancement, voilà là où j'en suis :

  • Développement de l'interface de gestion des membres
  • Développement du système de planètes
  • Développement des systèmes stellaires
  • Création d'un algorithme de génération de systèmes stellaires

Il reste évidemment beaucoup de choses à faire, je viendrai les présenter sur ce forum au fur et à mesure.

Objectifs

Je fais ce projet avant tout par plaisir, mais je souhaite qu'il soit, à terme, source de revenus. Je n'attends pas devenir millionnaire avec ce jeu, mais j'aimerais qu'il m'apporte un complément de revenus. Pour l'instant, je n'ai pas décidé de la façon de le rentabiliser. Les solutions les plus faciles sont les comptes Premium et la publicité, mais ça ne me semble pas viable (notamment le compte Premium qui pourrait défavoriser les joueurs). J'attendrai donc d'en discuter avec mon futur partenaire :)

En ce qui concerne la rentabilité espérée, j'aimerais pouvoir gagner entre 100 et 200 € par mois avec ce projet. Ça n'est pas grand chose, mais en étant étudiant c'est bien sympa ;)

À terme, si le jeu à bien marché en France, je compte entamer son internationalisation pour cibler un nombre de joueurs plus important.

L'originalité du projet

Des jeux par navigateur, il en existe des milliers, on est d'accord là-dessus. Voilà donc les points sur lesquels je veux que Galaxia Online se démarque :

  • Chaque planète est unique : Contrairement à la plupart des jeux existants, où chaque planète est quasiment la copie de la précédente, une planète de Galaxia Online présentera de nombreux attributs, dont la combinaison la rendra quasiment unique : anomalies, population, taille, type, etc.
  • Conception de ses propres vaisseaux : Dans Galaxia Online, c'est aux joueurs de créer leurs vaisseaux. Grâce à la recherche, ils découvriront des chassis (qui sont la base) et des modules (d'attaque, de défense, de soutien, etc). Chaque chassis accepte un nombre limité de modules, et c'est l'intelligence du joueur qui fera la différence et donnera des combats imprévisibles.
  • Une colonisation réaliste : Chaque planète aura sa difficulté à être colonisée, mais présentera des avantages en conséquence…
  • Mais encore : Une diplomatie poussée, un arbre de recherche riche, un système de combat innovant, des héros…

Les différences avec les jeux par navigateur classiques sont trop nombreuses pour être toutes citées ici ;) Au fur et à mesure de leur développement, je les détaillerai sur le forum.

Le mot de la fin

J'espère vous avoir donné envie de découvrir ce projet, et pourquoi pas de le rejoindre ! Si vous avez une question, une interrogation, ou autre, n'hésitez pas à me le faire savoir ici-même. Je vous répondrai le plus rapidement possible.

N'hésitez pas non plus à aller faire un tour sur http://galaxia-online.com, afin de découvrir le site et de vous amuser avec le générateur de systèmes stellaires ;)

Merci de votre lecture !

Édité par Theo

+0 -0

Bonjour !

Je me suis inscrit et j'ai un peu joué avec le générateur de planète, ça à l'air sympa.

Moi, je peut pas trop t'aider. Je sais faire du HTML/CSS mais JS (et Jquery), je suis incapable de faire quoi que ce soit avec. En graphisme, je me débrouille, mais je suis très loin du niveau de certains (en 2D, parce qu'en 3D n'en parlons pas).

Enfin bref, j'ai hâte que tout ça avance, en espérant que le projet marche, mais que déjà tu trouves quelqu'un !

Auteur du sujet

Salut Bat', merci de ton intérêt :)

Moi, je peut pas trop t'aider. Je sais faire du HTML/CSS mais JS (et Jquery), je suis incapable de faire quoi que ce soit avec. En graphisme, je me débrouille, mais je suis très loin du niveau de certains (en 2D, parce qu'en 3D n'en parlons pas).

Je ne cherche pas forcément quelqu'un avec un niveau pré-requis, comme je l'ai dit c'est un projet sans délais, donc si tu as envie d'améliorer tes compétences, tout en réalisant un projet concret, on peut en parler ! :)

Enfin bref, j'ai hâte que tout ça avance, en espérant que le projet marche, mais que déjà tu trouves quelqu'un !

Merci de tes encouragements. Voilà d'ailleurs l'avancement du jour :

Les anomalies : Les anomalies sont des éléments aléatoires qui modifent les caractéristiques d'une planète. Par exemple, l'anomalie "Artefacts anciens" augmente la recherche et la brume d'une planète, alors que l'anomalie "Faune hostile" diminue l'approbation et la recherche. Ces anomalies peuvent être entièrement bénéfiques, entièrement pénalisantes, ou entre les deux (cela est repéré par un code couleur).

N'hésitez pas à vous amuser avec le générateur pour découvrir ces anomalies ! Avec l'ajout celles-ci, Galaxia Online est maintenant capable de générer plus de 3 000 planètes différentes. De quoi avoir de la diversité non ? ;)

Exemple d'anomalie - J'ai été d'ailleurs très chanceux sur celle-ci

L'autre nouveauté, plus discrète, est la mise en place de meilleurestooltips (les boîtes qui s'affichent lorsqu'on passe la souris sur un mot souligné en pointillés). En effet, celles-ci ne pouvaient contenir jusqu'à présent que du texte, elles peuvent maintenant contenir n'importe quel élément HTML. Cela va permettre de créer une aide interactive au sein du jeu, qui n'alourdit pas la navigation.

Je vais maintenant travailler sur l'outil de création de vaisseau. C'est un gros morceau, et j'espère pouvoir avancer rapidement pour vous le présenter.

Bonne soirée :)

Édité par Theo

+2 -0
Auteur du sujet

Bonjour à tous !

Je viens pour faire un point sur l'avancement du projet. Je travaille sur l'outil de création de vaisseaux, et je vais donc donner un peu plus de détails sur celui-ci.

Présentation des classes et modules de vaisseaux

À la base de chaque vaisseau, il y a une​ Classe de vaisseau​. Elles sont au nombre de 5, du plus léger au plus lourd. Chacune de ces classes dispose des attributs suivants :

  • Le tonnage : c'est en fait la taille du vaisseau (qui va déterminer le nombre de modules que celui-ci peut emporter)
  • La coque : la résistance du vaisseau
  • Un éventuel bonus : celui-ci permet de spécialiser un vaisseau. Par exemple, une certaine classe aura une réduction du tonnage de -20 % sur les modules d'armement

Une fois cette classe choisie, il faut alors personnaliser son futur vaisseau à l'aide de​ modules​ Les modules peuvent être de trois sortes :

  • Armement
  • Défense
  • Soutien

Je pense que les deux premiers se passent d'explications ;) Le troisième type est particulier, car il regroupe des types de modules très divers : le module de colonisation, des modules apportant des bonus aux armes, aux défenses, à la vitesse, etc.

Ainsi, vous pouvez créer une infinité de vaisseaux différents, en jouant sur la proportion et le type de chacun des modules que vous mettrez. Par conséquent, créer des vaisseaux efficaces sera un aspect à part entière du jeu, et il faudra le maîtriser afin de prendre l'avantage !

L'avancement

En ce qui concerne l'avancement, celui-ci n'est malheureusement pas visible car je travaille beaucoup sur le backend (la partie interface d'administration) de cette fonctionnalité. Cela permettra de créer très rapidement de nouveaux modules, de les modifier, etc.

Je devrais avoir fini cette partie d'administration d'ici demain. À ce moment-là, je m'attaquerai à réaliser un éditeur de vaisseau à proprement parler (qui sera probablement en Javascript) et intégré au site. Je pense également pouvoir permettre aux membres de sauvegarder leurs modèles, qui pourront ainsi leur servir quand le jeu sera lancé. Qu'en pensez-vous ?

Le recrutement

N'ayant pas encore eu de réponses, je cherche toujours activement un graphiste/webdesigner pour réaliser les visuels du jeu et la mise en forme générale. Même si vous ne pensez pas être au niveau, mais que vous êtes prêts à apprendre, n'hésitez pas à me contacter ! En effet, j'ai une idée assez précise du style des visuels, je pourrai donc vous guider :)

À très bientôt pour de nouvelles informations ;)

+1 -0
Auteur du sujet

Bonsoir !

Après cinq jours intensifs, je viens vous donner des nouvelles sur l'avancement.

Outil de création des vaisseaux

L'outil de création

L'outil de création de vaisseau est maintenant disponible ! Ça a été un long travail pour car je suis loin d'être un expert du Javascript, et je voulais malgré tout quelque chose de très intéractif. Ce n'est qu'une première version, ce n'est pas parfait (d'ailleurs n'hésitez pas à me faire part de vos remarques), et il est possible qu'il y ait des bugs non détectés, mais ça fonctionne dans l'ensemble. :)

Vous choisissez donc une classe de vaisseau, puis vous rajoutez les modules que vous voulez. Pour l'instant, les modules de soutien ne sont pas encore implémentés car je réfléchis encore à leur conception (ce sont des modules un peu particuliers, et je souhaite garder un fonctionnement assez générique pour pouvoir en rajouter plus tard sans toucher au code, ou presque).

De plus, si vous êtes membre, vous avez la possibilité d'enregistrer votre modèle une fois qu'il vous convient. Pour l'instant, vous ne pourrez que consulter les modèles que vous avez créés, mais à l'avenir, vous pourrez les tester dans un simulateur de combat ! :)

Prochaines étapes

Je vais m'atteler à plusieurs choses :

  • Une amélioration de mon processus de déploiement : pour l'instant je fais tout à la main, et je pense passer sur Travis ou Jenkins dans les jours qui viennent. Si vous avez des opinions sur ces outils, je suis preneur.
  • La conception des modules de soutien, un morceau pas si gros que ça mais il faut que je le pense intelligemment
  • L'amélioration de l'outil de création de vaisseau en fonction de vos retours

Comme vous pouvez le voir, je fais une "pause" en évitant de m'attaquer immédiatement à quelque chose de gros, pour pouvoir reprendre des forces et faire le point. Le prochain gros chantier sera la génération de galaxies : des notions en théorie des graphes à revoir ;)

Le recrutement

En ce qui concerne le recrutement, je n'ai pas eu de retour ici ou sur OC. Cela dit, en parlant avec un ami, on en est venus à discuter du projet et il se pourrait qu'il soit intéressé. Je vais voir ça avec lui dans la semaine, donc pour l'instant je ne recherche personne. :)

Bonne semaine à tous, et n'hésitez pas à me poser des questions, ça me fait réfléchir et ça me donne de nouvelles idées ! ;)

Édité par Theo

+1 -0

Cette réponse a aidé l'auteur du sujet

J'ai testé vite fait la génération d'un système et c'est chouette, j'aime beaucoup l'idée des bonus / malus sur certaines planètes (J'ai dû me manger plusieurs tempêtes, chutes de météorites et autres joyeusetés). Pourquoi ne pas donner un nom intelligible aux systèmes et planètes avec une génération par syllabes :o ? A moins que ce ne soit volontaire

+0 -0
Auteur du sujet

Oui effectivement on a souvent des bonus/malus, en fait il y a une chance sur deux d'avoir une anomlie (qu'elle soit bénéfique, handicapante ou entre les deux).

À terme, des technologies de recherche permettront de modifier les anomalies d'une planète. La première technologie permettra de supprimer les anomalies "entre les deux" (orange), en ne gardant que les effets positifs, tandis que la seconde permettra de suprime complètement les anomalies négatives.

En ce qui concerne les noms, à terme j'envisage soit un système de génération par syllabes comme tu le proposes, soit un système par dictionnaire.

Avec un système par syllabes, je peux générer une quasi-infinité de noms. L'inconvénient étant que cela peut donner des noms vraiment idiots ^^

Avec un système de dictionnaire, les noms seront "relativement" RP, mais il faut que je dispose d'un dictionnaire conséquent.

À savoir que dans tous les cas, il sera possible de renommer son système stellaire à sa guise !

Je pense partir plutôt sur le système de dictionnaire au début, en mettant à contribution les personnes qui suivent le projet pour trouver des idées de noms et avoir le privilège de voir leur trouvaille devenir un nom dans le jeu :)

En ce qui concerne les planètes, elles ont un nom de la forme suivante : [Nom du système] [Numéro de la planète] et je ne compte pas permettre de changer celui-ci.

J'espère avoir répondu à tes interrogations :) N'hésite pas si tu as d'autres questions.

+0 -0

Par génération de syllabe tu peux faire une génération intelligente En d'autres termes, le programme te demandera en faisant plein de combinaisons de syllabes si telle syllabe et telle syllabe vont bien ensemble, si oui, une liaison est crée. Par exemple, le programme demande : Pé et Cu : On va dire non, ça fait PQ c'est bof Ge et nu : Pourquoi pas Sa et ro : On va dire oui aussi

Et tu te retrouveras avec des Genusaro, Sarogenu etc.. Qui ne sonnent pas trop mal :)

+0 -0

Salut, j'avais fait un projet quasi identique que j'avais arrêté à cause de la partie graphisme. Comment fonctionne ton système de ressources ? Pour les noms des planètes, j'utilisais le style Stargate par exemple P4X-250, donc tu peux générer des codes planètes selon leur coordonnées. Tu as prévus quoi pour la gestion du temps ?

si telle syllabe et telle syllabe vont bien ensemble

Faut pas utiliser mi do et so alors.

Édité par ads00

+0 -0
Auteur du sujet

Par génération de syllabe tu peux faire une génération intelligente En d'autres termes, le programme te demandera en faisant plein de combinaisons de syllabes si telle syllabe et telle syllabe vont bien ensemble, si oui, une liaison est crée. Par exemple, le programme demande : Pé et Cu : On va dire non, ça fait PQ c'est bof Ge et nu : Pourquoi pas Sa et ro : On va dire oui aussi

Faut pas utiliser mi do et so alors.

Ça fait partie des raisons qui me rendent réticent à l'utilisation d'un algorithme aléatoire. Je pense qu'avec une base d'une centaine de noms, cela devrait suffire. Je peux également utiliser des outils comme celui-ci pour trouver ces noms.

Salut, j'avais fait un projet quasi identique que j'avais arrêté à cause de la partie graphisme. Comment fonctionne ton système de ressources ? Pour les noms des planètes, j'utilisais le style Stargate par exemple P4X-250, donc tu peux générer des codes planètes selon leur coordonnées. Tu as prévus quoi pour la gestion du temps ?

Il y a quatre ressources de base (tu peux d'ailleurs les voir en utilisant le générateur de planètes) :

  • L'agriculture (qui permet d'augmenter la population)
  • La production, qui sert à construire
  • La recherche
  • La brume, qui est en quelque sorte la monnaie du jeu

Chaque planète produit une certaine quantité de chacune de ces ressources. Il y aura également des ressources spéciales, qui permettront de produire certains équipements. Mais je préfère ne pas en parler pour l'instant étant donné que ce n'est pas tout à fait fixé :)

En ce qui concerne les planètes, il n'y aura pas de système de coordonnées, donc j'utiliserai une génération à partir d'un dictionnaire.

Et enfin pour la gestion du temps, pas de temps réel mais du tour par tour. Un tour durera une heure, et à chaque tour un certain nombre d'actions seront résolues :

  • Mise à jour de la population des planètes (donc des ressources produites)
  • Mise à jour des files d'attente
  • Résolution des combats
  • Etc…

N'hésitez pas si vous avez d'autres questions :)

Le recrutement

J'ai trouvé un webdesigner qui travaillera avec moi sur le projet, et s'occupera de tous les graphismes. C'est un très bon ami à moi avec qui j'ai déjà réalisé des projets, on est donc sur la même longueur d'onde. :)

L'avancement

J'ai bien avancé sur les modules de support, leur back-end est maintenant fonctionnel. Je vais donc passer à leur intégration côté front-end :)

Édité par Theo

+2 -0
Auteur du sujet

Coucou :)

Ça fait un petit moment que je n'avais pas donné de nouvelles. Le projet avance toujours, j'ai mis en pause le système de modules pour le moment.

En effet, je me rendais compte que quelque chose clochait dans les données du jeu. C'est un peu technique, mais à la base toutes les données relative au jeu étaient stockées dans la base de données. En soi ce n'est pas un mal, mais le gros gros problème était que du coup ces données n'étaient pas versionnées.

Par conséquent, il était très difficile de gérer les modifications de ces données de jeu. Déjà, il fallait coder tout un back-end pour ça (ce qui n'apporte pas de valeur ajoutée côté joueur), et en plus je ne pouvais pas être sûr de ce qu'il y avait dans la base de données.

Désormais c'est réglé : je passe par un fichier YML qui contient les données du jeu, et j'ai créé une commande Symfony2 custom qui est exécutée à chaque déploiement sur le serveur et qui synchronise ce fichier avec la BDD.

J'avais au début voulu passer par le fichier YML uniquement, mais ça allongeait beaucoup trop le temps des requêtes (de 300 ms en BDD à 2 ou 3 secondes en lecture de fichier…).

Voilà pour les explications techniques, j'espère n'avoir perdu personne :)

Je vais donc continuer, dans les prochains jours, à migrer les données en base vers les fichiers YML.

Bonne journée à tous :)

+2 -0
Auteur du sujet

Effectivement ça l'est un peu ^^ Mais bon c'est nécessaire, et même si ça ne se voit pas directement ça va économiser beaucoup de lignes de codes dans le futur (tout le back-end correspondant), donc au final ça accélèrera le développement et ça assouplira le code en cas de futur changements.

C'est le prix à payer :D

+0 -0

J'ai déjà connu ce genre de situations où quand tu testes ton programme rien ne change voire y a des trucs en moins qui ont été enlevés pour la stabilité du programme. En tout cas tiens nous au courant des changements :P Et si tu peux poster un petit screen pour illustrer tes propos ça serait encore plus vendeur :)

+0 -0
Auteur du sujet

Salut tout le monde :)

Voilà un petit résumé de ces quelques jours.

Le module de création de vaisseaux sous AngularJS

L'avancement
  1. J'ai terminé la refactorisation des différentes données du jeu en les incluant dans des fichiers YML. Ça m'a pris pas mal de temps, mais au final ça allège le code d'à peu près 1 500 lignes, ce qui est loin d'être négligeable.
  2. J'ai migré le module de création de vaisseaux, en passant de jQuery à AngularJS. Pourquoi ça ? Déjà, pour tester AngularJS et voir si je pourrai l'utiliser à plus long terme sur d'autres parties du jeu. Mais également pour essayer d'obtenir un code plus maintenable. En effet, avec jQuery il y avait beaucoup de fonctions anonymes imbriquées, alors qu'AngularJS permet d'"aplatir" tout ça.
Les prochaines étapes

Je vais donc pouvoir reprendre l'avancement sur des choses plus "visibles". Au programme :

  1. Implémenter les premiers modules de support
  2. Implémenter une simulation de combat

À très bientôt :)

+2 -0
Auteur du sujet

Ok, c'est bon à savoir, merci de ton aide je te contacterai si besoin :)

En attendant, si tu trouves que certaines choses ne sont pas pratiques, si tu as des idées d'amélioration, etc, n'hésite pas à m'en faire part.

D'ici quelques mois, quand le projet sera plus avancé, je créerai un espace dédié à la communauté afin de la faire participer à la conception du jeu, car je tiens vraiment à ce que les futurs joueurs puissent apporter leur vision et leur touche personnelle au jeu. Mais en attendant, je le fais ici, donc n'hésitez pas :)

+0 -0
Auteur du sujet

Salut tout le monde,

un petit point sur l'avancement !

L'avancement

Les modules de support !

Les modules de support sont enfin disponibles ! Ça n'a l'air de rien mais ça a été beaucoup de boulot, car ces modules influencent les autres et j'ai passé de longues heures à écrire des tests et à déboguer pour avoir quelque chose qui marche (ou en tout cas j'ai l'impression que ça marche, peut-être que vos tests me donneront tort :p ).

Comme d'hab, n'hésitez pas à les essayer !

Les prochaines étapes

Comme prévu, je vais maintenant m'attaquer à un autre gros morceau, en lien avec celui que je viens de terminer : le simulateur de combat. Le système de combat du jeu sera original, très différent de ce que l'on trouve dans les jeux Web classiques. Je n'en dis pas plus, et je vous laisserai le découvrir ;)

Une fois ceci terminé (dans quelques semaines tout de même !), je m'attaquerai aux déplacements sur la carte de la Galaxie, et tout ce que ça implique.

À bientôt !

+0 -0
Auteur du sujet

EDIT : Oups je vois ce que tu veux dire, effectivement il y a un "r" en trop. Je changerai ça à l'occasion ;)

Je signale au passage que ces noms vont être amenés à changer au fur et à mesure qu'on se rapprochera dans la version finale du jeu :)

Édité par Theo

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte