10-10-2008, 10:35 AM
Bonjour à tous,
Dans ma série "Je m'ennuye et j'en ai marre de coder Aluren", je vous présente aujourd'hui... Le big-bang et vous !
Le principe est très simple : remplir de manière réaliste un univers assez grand est à mon sens très complexe puisqu'il faut respecter les proportions de présence des différents éléments, l'évolution des étoiles, les types d'étoiles, etc...
Donc j'ai créé un petit script qui le fait pour vous. Je ne met pas de démonstration car le script est très lourd pour le serveur (particulièrement sur des grandes cartes), mais voici le lien où vous pouvez le télécharger : http://www.aluren.fr/perso/univers.zip
Pour l'installation, c'est très simple : dé-zippez simplement tous les fichiers dans un répertoire ; si vous êtes sous *nix, donnez à ce repertoire un chmod 0777 (le script créé des fichiers). Et voila, c'est installé (je ne me sers pas de base de données).
Comment ça marche, maintenant ? C'est assez simple. Il y a deux modes de fonctionnement : le mode "étoile" et le mode "univers". Vous pouvez choisir entre les deux sur la page d'accueil. Attention, remettre à zéro l'un remet à zéro l'autre !
En mode étoile, vous devez indiquer combien d'hydrogène possède l'étoile à sa création. Ce mode ne permet pas de nuancer (c'est à dire de créer des étoiles de seconde génération, possédant déjà des éléments plus lourds).
L'unité de l'hydrogène est arbitraire et fixée de telle manière que :
- Le soleil possède à l'origine 100.000 unités d'hydrogène
- Les objets astronomiques les plus petits qu'on considère encore comme des pseudo-étoiles (les naines brunes, ce ne sont même pas des étoiles au sens strict) possèdent à l'origine au moins 1261 unités d'hydrogène
- Les étoiles les plus grosses et stables possèdent à l'origine 12.000.000 unités d'hydrogène
Le mode étoile utilise uniquement la session pour sauvegarder ses données. Il sert principalement à régler les paramètres utilisés par la classe étoile ; vous avez plusieurs "vitesses" d'évolution ; en pratique, utiliser la plus basse est toujours le meilleur choix, à moins de ne savoir exactement ce que vous voulez voir, car à de plus hautes vitesses, l'étoile n'évoluera pas normalement (pour être exact, elle ne passera pas normalement d'un stade à l'autre).
Le mode univers est un peu différent. A l'origine, vous choisissez la taille de votre univers et le nombre initial d'étoiles. J'ai testé avec des cartes de 100x100, ca marche (mais c'est lent) : la sauvegarde fait alors un peu plus de 1Mo.
Le nombre initial d'étoile est très important. La taille des étoiles est défini par le biais d'un hasard guidé pour se rapprocher des conditions régnants dans notre univers. Si vous ne mettez pas assez d'étoile, les étoiles de seconde et troisième génération (particulièrement de troisième génération) ne pourront jamais se développer, et vous aurez un univers vide. Si vous en mettez trop, le nombre de trous noirs sera trop élevé et votre univers ne pourra pas se développer. Testez pour obtenir un juste milieu !
En mode univers, cliquer sur une case vous détaille la composition de cette case. Vous noterez qu'il y a beaucoup de planètes pour les étoiles de seconde (et plus) génération ; en fait, en-dessous de 8x10^-5 masses de la terre, on parle de "petit corps" (les astéroides, quoi) et au-dessus, de planète ou planète naine (pluton est une planète naine, pas une planète).
Vous ne pouvez avancer que par million d'années en mode univers. Ce mode sauvegarde ses données sous forme d'un tableau d'objets sérialisé dans un fichier qui dépends de votre session ; pensez d'ailleurs à le vider régulièrement.
Vous noterez dans les composition (dans les deux modes) un champs "Autre". Ce champs représente tous les autres atomes ; ceux-ci sont créés uniquement à des moments très précis de la vie des étoiles, et des molécules sont créés en même temps. Comme il est hors de ma portée de détailler tout ça, j'ai simplement réuni le tout dans "Autres". Oui, donc ca concerne aussi l'or et le platine, mais regardez un tableau periodique des éléments, divisez, et vous obtiendrez une idée du nombre.
Enfin, pour régler l'évolution des étoiles comme vous le souhaitez, vous pouvez changer les différents facteurs chiffrés de la classe etoile. D'une manière générale, ce sont les puissance (pow($this->taille, 1.5)) qui influent sur la génèse des éléments et la taille de l'étoile.
Alors, maintenant passons aux questions-réponses :
- C'est moche !
- Je sais. Et ça le restera : cela n'a pas but d'être un truc distribué aux joueurs, c'est juste pour vous aider à remplir vos bases de données.
- C'est faux !
- Je sais aussi. Mon modèle n'est pas tout à fait réaliste ; les étoiles y ont une durée de vie différente de la réalité (12 millions d'années contre 7 en théorie pour une étoile de classe O, 13 milliards d'année contre 15 en théorie pour une étoile de classe G). Mais le but de l'outil n'est pas d'arriver à une simulation parfaite, utilisable dans les laboratoires de physique ; simplement de pouvoir donner un univers réaliste aux joueurs.
- D'où sortent toutes ces valeures ?
- Principalement de vraies valeures, mais arrondies et approchées. Les réactions de fusion que je met en oeuvre dans ma simulation sont celles qui se produisent réellement, à ceci près que je néglige l'isotope alors que dans la réalité, il est important. Certaines valeures (particulièrement lors de la fusion du noyeau de fer et de la fusion du silicium) sont des valeures prises arbitrairement, même si elles sont probablement un minimum proche de la réalité ; mais de ce que j'ai pu trouver sur internet, nous ne connaissons pas les valeures réelles, la fin de la vie d'une étoile étant assez mouvementée (pour info, la fusion du silicium se fait en quelques heures, et la fusion du fer en quelques secondes).
- C'est quoi ces températures ?
- Ce sont des degrés Kelvin. Pour obtenir la temperature en celsius, retirez 273,15 ; pour l'obtenir en fahrenheit, démerdez-vous.
- C'est quoi l'unité de masse ?
- Je l'ai indiquée arbitraire ; en fait, ce n'est pas tout à fait vrai. Plus exactement, c'est vrai mais on peut établir une correspondance avec les kilogrammes ; si vous voulez vous y amuser, c'est votre droit le plus strict ^^
Voila, si vous avez d'autres questions ou remarques, dites-les, et sinon, ben utilisez ça comme vous voulez ; je vous demande juste de pas re-distribuer le script sans indiquer que j'en suis l'auteur. Ah, et bien sûr, je suis susceptible de l'utiliser moi aussi pour remplir un futur jeu.
Voila voila...
Ekilio, qui s'ennuyait hier.
Dans ma série "Je m'ennuye et j'en ai marre de coder Aluren", je vous présente aujourd'hui... Le big-bang et vous !
Le principe est très simple : remplir de manière réaliste un univers assez grand est à mon sens très complexe puisqu'il faut respecter les proportions de présence des différents éléments, l'évolution des étoiles, les types d'étoiles, etc...
Donc j'ai créé un petit script qui le fait pour vous. Je ne met pas de démonstration car le script est très lourd pour le serveur (particulièrement sur des grandes cartes), mais voici le lien où vous pouvez le télécharger : http://www.aluren.fr/perso/univers.zip
Pour l'installation, c'est très simple : dé-zippez simplement tous les fichiers dans un répertoire ; si vous êtes sous *nix, donnez à ce repertoire un chmod 0777 (le script créé des fichiers). Et voila, c'est installé (je ne me sers pas de base de données).
Comment ça marche, maintenant ? C'est assez simple. Il y a deux modes de fonctionnement : le mode "étoile" et le mode "univers". Vous pouvez choisir entre les deux sur la page d'accueil. Attention, remettre à zéro l'un remet à zéro l'autre !
En mode étoile, vous devez indiquer combien d'hydrogène possède l'étoile à sa création. Ce mode ne permet pas de nuancer (c'est à dire de créer des étoiles de seconde génération, possédant déjà des éléments plus lourds).
L'unité de l'hydrogène est arbitraire et fixée de telle manière que :
- Le soleil possède à l'origine 100.000 unités d'hydrogène
- Les objets astronomiques les plus petits qu'on considère encore comme des pseudo-étoiles (les naines brunes, ce ne sont même pas des étoiles au sens strict) possèdent à l'origine au moins 1261 unités d'hydrogène
- Les étoiles les plus grosses et stables possèdent à l'origine 12.000.000 unités d'hydrogène
Le mode étoile utilise uniquement la session pour sauvegarder ses données. Il sert principalement à régler les paramètres utilisés par la classe étoile ; vous avez plusieurs "vitesses" d'évolution ; en pratique, utiliser la plus basse est toujours le meilleur choix, à moins de ne savoir exactement ce que vous voulez voir, car à de plus hautes vitesses, l'étoile n'évoluera pas normalement (pour être exact, elle ne passera pas normalement d'un stade à l'autre).
Le mode univers est un peu différent. A l'origine, vous choisissez la taille de votre univers et le nombre initial d'étoiles. J'ai testé avec des cartes de 100x100, ca marche (mais c'est lent) : la sauvegarde fait alors un peu plus de 1Mo.
Le nombre initial d'étoile est très important. La taille des étoiles est défini par le biais d'un hasard guidé pour se rapprocher des conditions régnants dans notre univers. Si vous ne mettez pas assez d'étoile, les étoiles de seconde et troisième génération (particulièrement de troisième génération) ne pourront jamais se développer, et vous aurez un univers vide. Si vous en mettez trop, le nombre de trous noirs sera trop élevé et votre univers ne pourra pas se développer. Testez pour obtenir un juste milieu !
En mode univers, cliquer sur une case vous détaille la composition de cette case. Vous noterez qu'il y a beaucoup de planètes pour les étoiles de seconde (et plus) génération ; en fait, en-dessous de 8x10^-5 masses de la terre, on parle de "petit corps" (les astéroides, quoi) et au-dessus, de planète ou planète naine (pluton est une planète naine, pas une planète).
Vous ne pouvez avancer que par million d'années en mode univers. Ce mode sauvegarde ses données sous forme d'un tableau d'objets sérialisé dans un fichier qui dépends de votre session ; pensez d'ailleurs à le vider régulièrement.
Vous noterez dans les composition (dans les deux modes) un champs "Autre". Ce champs représente tous les autres atomes ; ceux-ci sont créés uniquement à des moments très précis de la vie des étoiles, et des molécules sont créés en même temps. Comme il est hors de ma portée de détailler tout ça, j'ai simplement réuni le tout dans "Autres". Oui, donc ca concerne aussi l'or et le platine, mais regardez un tableau periodique des éléments, divisez, et vous obtiendrez une idée du nombre.
Enfin, pour régler l'évolution des étoiles comme vous le souhaitez, vous pouvez changer les différents facteurs chiffrés de la classe etoile. D'une manière générale, ce sont les puissance (pow($this->taille, 1.5)) qui influent sur la génèse des éléments et la taille de l'étoile.
Alors, maintenant passons aux questions-réponses :
- C'est moche !
- Je sais. Et ça le restera : cela n'a pas but d'être un truc distribué aux joueurs, c'est juste pour vous aider à remplir vos bases de données.
- C'est faux !
- Je sais aussi. Mon modèle n'est pas tout à fait réaliste ; les étoiles y ont une durée de vie différente de la réalité (12 millions d'années contre 7 en théorie pour une étoile de classe O, 13 milliards d'année contre 15 en théorie pour une étoile de classe G). Mais le but de l'outil n'est pas d'arriver à une simulation parfaite, utilisable dans les laboratoires de physique ; simplement de pouvoir donner un univers réaliste aux joueurs.
- D'où sortent toutes ces valeures ?
- Principalement de vraies valeures, mais arrondies et approchées. Les réactions de fusion que je met en oeuvre dans ma simulation sont celles qui se produisent réellement, à ceci près que je néglige l'isotope alors que dans la réalité, il est important. Certaines valeures (particulièrement lors de la fusion du noyeau de fer et de la fusion du silicium) sont des valeures prises arbitrairement, même si elles sont probablement un minimum proche de la réalité ; mais de ce que j'ai pu trouver sur internet, nous ne connaissons pas les valeures réelles, la fin de la vie d'une étoile étant assez mouvementée (pour info, la fusion du silicium se fait en quelques heures, et la fusion du fer en quelques secondes).
- C'est quoi ces températures ?
- Ce sont des degrés Kelvin. Pour obtenir la temperature en celsius, retirez 273,15 ; pour l'obtenir en fahrenheit, démerdez-vous.
- C'est quoi l'unité de masse ?
- Je l'ai indiquée arbitraire ; en fait, ce n'est pas tout à fait vrai. Plus exactement, c'est vrai mais on peut établir une correspondance avec les kilogrammes ; si vous voulez vous y amuser, c'est votre droit le plus strict ^^
Voila, si vous avez d'autres questions ou remarques, dites-les, et sinon, ben utilisez ça comme vous voulez ; je vous demande juste de pas re-distribuer le script sans indiquer que j'en suis l'auteur. Ah, et bien sûr, je suis susceptible de l'utiliser moi aussi pour remplir un futur jeu.
Voila voila...
Ekilio, qui s'ennuyait hier.