Archives de catégorie : Galaxia

Avancement des travaux – Résultats de l’étude de marché

Il y a quelques jours, j’annonçai la fermeture de l’étude de marché sur les jeux de stratégie par navigateur. Depuis la fermeture des votes, j’ai donc récupéré les résultats et ai entrepris de les analyser.

L’étude de marché révèle (et ce n’est pas une surprise) que le jeu de stratégie par navigateur a une mauvaise image. Il est souvent considéré comme un genre de seconde zone pour mauvais développeur et joueur fauché.

Les attentes sont, là aussi, assez conforme à ce qui était attendu. Pour beaucoup, les graphismes ne sont pas l’élément le plus important de tels jeux, mais ceux-ci doivent par contre bénéficier d’un univers vaste et structuré.

Enfin concernant le financement, beaucoup sont opposés à une participation directe du joueur et souhaitent plutôt un financement par la pub ou par l’utilisation d’un « cash-shop » (boutique virtuelle permettant d’acheter des objets et des avantages dans le jeu).

Beaucoup de sondés ont laissé un commentaire. Bien que non intégrés directement dans l’analyse de l’étude, ils m’ont été utiles pour comprendre et dépouiller les résultats bruts.

J’ai rédigé une analyse complète et détaillée de cette étude de marché (13 pages de graphes et de tableaux, tout en couleur et en français !). Elle est disponible ici : Analyse de l’étude de marché (Licence CC-BY-NC-ND).

Dans quelques jours, j’annoncerais officiellement mon positionnement par rapport au marché, ainsi que mon choix de financement.

Merci à tout ceux qui auront participé à cette étude !

N’hésitez pas à partager vos opinions et avis sur cette étude juste en dessous de cet article !

Bonne soirée

Avancement des travaux – Étude de Marché

Les travaux avancent sur la construction du moteur, alors il est temps d’étudier un peu la demande !

J’ai donc préparé une étude de marché, assez courte, pour me permettre de cerner le marché !

Merci à ceux qui prendront quelques minutes pour participer !

Pour participer à l’étude de marché, cliquez ici

Merci !

Avancement des travaux – Maths : enfin des résultats !

Victoire !

Après pas mal de boulot, j’ai enfin réussi à résoudre mon équation ! Et je peux donc modéliser ma galaxie !

On remarquera la magnifique performance de Sage, un logiciel de calcul formel libre (licence GPL) qui m’a permis d’y arriver ! Je crois que Xcas va se faire remplacer 😉 !

Les résultats de la modélisation dans les jours à venir, le temps de simplifier le tout. Parce que si j’ai effectivement une solution exploitable, elle n’en reste pas moins très moche !

Suivez le code sur Launchpad. Participez par mail : galaxia@anhydride-acide.fr

Avancement des travaux – Encore des maths…

La modélisation galactique est un point indispensable pour passer à la suite mais… ça ne fonctionne pas bien !

Je suis finalement resté sur les équations que je vous proposais dans l’article précédent, mais j’ai du mal à les résoudre de manière exacte. J’ai premièrement utilisé l’approximation des petits angles, parce que le point le plus proche sur la courbe devrait être à un angle assez proche et que donc les différences seront assez faibles. Ce qui me permet de me débarrasser des sinus et des cosinus.

Reste encore le problème des $$ b^\theta $$… J’ai décidé d’utiliser un développement de Taylor pour m’en débarrasser (à l’ordre 3 ou 4, ça devrait être suffisant) et récupérer un polynôme exploitable.

Souci, Xcas refuse de me résoudre mon polynôme sous prétexte que :

Attention! Extension algébrique non implémentée pour les poly

Je suis assez dépité… Je vais essayer de demander son avis à un autre logiciel de calcul formel pour voir !

Pour suivre l’évolution du code, rendez-vous sur Launchpad.

Pour participer, c’est galaxia@anhydride-acide.fr !

Avancement des travaux – Des maths galactiques !

Attention, cet article contient des maths ! Vous êtes prévenu 😛

Dans un précédent article, je vous parlais de la modélisation de la Galaxie, et je vous exposais comment j’avais l’intention de faire fonctionner tout ça, mathématiquement parlant.

Ainsi, je représente la galaxie par une spirale logarithmique. Sur le bras de la spirale, la probabilité de trouver un corps est maximale ; tandis que dès que l’on s’en éloigne celle-ci décroît exponentiellement.

Ça, c’est pour la théorie. Passons au calcul maintenant !

Une spirale logarithmique est décrite par l’équation suivante, en coordonnées polaires :

$$ r = ab^\theta $$

Avec b différent de 1, évidemment. Ensuite, il faut calculer la distance entre n’importe quel point et la spirale. Pour ça, j’utilise le théorème d’Al-Kashi qui me permet d’obtenir une fonction qui donne la longueur du segment entre un point quelconque du plan et un point quelconque de la spirale. Ainsi, j’ai :

$$ l = \sqrt{p^2 + r^2 – 2prcos(\gamma – \theta)} $$

Où $$ (p, \gamma) $$ sont les coordonnées d’un point quelconque du plan. En remplaçant ensuite r par son expression :

$$ l = \sqrt{p^2 + a^2b^{2\theta} – 2pab^\theta cos(\gamma – \theta)} $$

Mais là, je n’ai bien sûr pas l’expression exacte de la distance entre un point et la spirale… Il me faut d’abord optimiser cette expression, via le calcul de sa dérivée. Si le calcul est assez simple à faire, l’optimisation par contre nécessite de trouver les racines de la dérivée… Ce qui est nettement plus compliqué ! À vue de nez, c’est impossible à faire à la main. Et lorsque j’ai demandé à XCas, il a joyeusement consommé 16 Go de mémoire vive avant de se faire tuer par GNU/Linux…

La solution est donc de résoudre l’équation numériquement, mais ça n’est pas très pratique ! Alors je suis en train de réfléchir à une autre approche du problème , via l’utilisation de tangentes à la spirale…

On verra bien !

Suivez l’évolution du code sur Launchpad. Participez sur galaxia@anhydride-acide.fr !

Avancement des travaux – Modélisation

Après une intense réflexion, j’ai fini par me mettre d’accord avec moi-même sur le système de coordonnées des planètes à utiliser.

J’ai donc considéré que l’on se placerait dans une galaxie spirale. Je choisis donc d’utiliser des coordonnées polaires pour exprimer le problème. Polaires, et non pas cylindriques car je considère la galaxie comme infiniment fine devant sa largeur, et que la probabilité que deux corps soient alignés verticalement comme négligeable.

À partir de là, chaque corps céleste se voit attribuer 5 coordonnées.

  1. La première désigne la galaxie dans laquelle est situé le système auquel appartient le corps. Choisi de manière arbitraire, sûrement « 1 » pour la première galaxie qui sera modélisée ;
  2. La deuxième indique l’angle orienté entre le segment [centre de la galaxie, système du corps étudié] et le segment [centre de la galaxie, point de référence], mesuré en degré. Le point de référence sera une planète importante du background, mais on verra à ce moment là ;
  3. La troisième indique la longueur du segment [centre de la galaxie, corps étudié]. Plus couramment appelé rayon, on l’exprimera en années lumière ce qui est assez cohérent à la vue des dimensions usuelles des galaxies ;
  4. À partir d’ici, on est plus à l’échelle galactique mais à l’échelle locale. Cette coordonnées indique donc le numéro de l’orbite du corps qui nous intéresse. L’orbite 0 correspond à l’étoile centrale du système (ou équivalent). Puis l’orbite 1 désigne l’orbite la plus basse, et cætera ;
  5. La coordonnées suivant désigne le numéro du corps sur l’orbite autour de l’étoile centrale. Le corps principale (la Terre sur son orbite, par exemple) obtient le numéro 0. Chaque satellite reçoit un numéro en fonction de son éloignement (la Lune obtiendrait donc le numéro 1) ;

Avec ce système on a une manière assez fiable de désigner les corps célestes. À noter que l’on ignorera les mouvements des corps. À l’échelle locale, ils sont suffisamment faibles pour être négligeables, tandis qu’à l’échelle galactique ils ne sont pas visible, car le repère se déplace en même temps.

Il s’agit maintenant de mettre une modélisation mathématique sur le sujet. J’ai opté pour le modèle suivant : la galaxie est représentée par une spirale (logarithmique). La probabilité de trouver un corps céleste est maximale sur la spirale, et décroît de manière exponentielle avec l’augmentation de la distance avec le bras de la spirale.

Je suis en train de travailler sur les équations qui décrivent ça, mais c’est assez balèze 😀 !

Suivez l’avancement du code sur le launchpad.

Les participations, suggestions… sont les bienvenues sur galaxia@anhydride-acide.fr

Bonne soirée !

Avancement des travaux – Il est vivant !

Précédemment, j’annonçais mon intention de lancer un jeu en ligne, et la création de son moteur de jeu.

Et bien ça avance ! Le moteur (pour l’instant nommé très sobrement Galaxia :D) acquière petit à petit ses fonctionnalités. Et premier élément essentiel, qu’il puisse fonctionner comme un parfait daemon !

C’est donc chose faite : une fois installé, il démarre avec init (à partir du runlevel 2 pour être précis), tourne en arrière-plan comme fils d’init, et enregistre tous ses messages dans son propre fichier de log via rsyslog.

À noter aussi qu’il est capable d’intercepter SIGTERM afin de pouvoir s’arrêter proprement.

Retrouvez tous les détails sur le launchpad du projet : https://launchpad.net/galaxia

Prochaine étape, création de la structure de données. Les premiers éléments à être définis seront les corps célestes. Plus de détails ultérieurement.

Détails, questions, participations : galaxia@anhydride-acide.fr

Bonne fin de week-end

Un moteur de jeu en ligne

Depuis quelques temps déjà, l’idée me trottait dans la tête. J’ai décidé de franchir le pas, et je viens de me lancer dans le développement d’un jeu de stratégie spatial en temps réel par navigateur.
J’ai d’ores et déjà commencé l’écriture du moteur de jeu en C++, et lancé un dépôt Launchpad sur le sujet.

J’ai aussi de très nombreuses idées de background et de gameplay, je vais tenter de formaliser tout ça dans les jours à venir. L’idée serait d’avoir un monde au gameplay très ouvert et au background très cohérent (j’ai dit cohérent, pas réaliste ^^)

Le projet est bien entendu un projet libre, sous licence AGPL et GPL v3 (l’AGPL est nécessaire pour un moteur de jeu en ligne !)

Toutes les bonnes volontés sont bien sûr les bienvenues sur galaxia@anhydride-acide.fr

Bonne nuit !

Rowin