Etienne BAUDOUX

Forum sur les projets de Etienne BAUDOUX


Génération procédurale de planètes

Partagez
avatar
Blackorion35
Je suis là tous les jours
Je suis là tous les jours

Masculin Nombre de messages : 2565
Age : 27
Localisation : Rouen
Emploi/loisirs : Dirigeant société informatique déclaré/Informaticien au CNED
Humeur : En forme !
Date d'inscription : 19/03/2013

Génération procédurale de planètes

Message par Blackorion35 le Dim 29 Mar 2015 - 13:22

Bonjour,

Je partage ici un logiciel que j'ai conçu avec SZ 2014 qui permet de générer aléatoirement un système de planète avec un second code de génération procédurale : cela signifie que on met des restrictions particulières dans chaque variables aléatoires pour concevoir quelques choses qui tient la route Wink Cela s'appel la génération procédurale : très longue à développé mais simple ici car c'est un petit programme amusé 
En laissant ce logiciel tourné vous pourrez concevoir en 6 heures plus de 300.000 planètes uniques chacune.

Dans l'exemple de différence entre aléatoire et procédural : 

Imaginez que vous souhaitez concevoir aléatoirement un décors montagneux avec des maisons et des arbres.

Aléatoirement : les arbres et maisons apparaîtrons n'importe où : y compris dans des endroits illogiques ou même en l'air.
Procéduralement : les arbres et maisons apparaîtrons par exemple sur des surface étant 80% planes et les arbres que sur un sol fait d'herbe. Plus de bugs de placements.

DOWNLOAD : [url=http://algostep-mantrix.fr/Procedural Planetes (AlgoStep Company).zip]http://algostep-mantrix.fr/Procedural Planetes (AlgoStep Company).zip[/url]
[url=http://algostep-mantrix.fr/Procedural Planetes (AlgoStep Company).zip][url=http://algostep-mantrix.fr/Procedural Planetes (AlgoStep Company).zip]http://algostep-mantrix.fr/Procedural Planetes (AlgoStep Company).zip[/url][/url]

Bon test Very Happy !

PS : Laissez le programme tourner 1 minute en automatique et fermer le programme ; ouvrez le dossier "procedural-planetes" et choisissez la planète que vous souhaitez voir amusé 


Code source (extrait aléatoire et procédural restriction):

Public Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            Me.BackColor = System.Drawing.Color.FromArgb(255, 78, 0, 255)
            codes_planetes = VelerSoftware_GeneralPlugin.RandomNumber(1, 987654321987654321, false)
            type_planetes = VelerSoftware_GeneralPlugin.RandomNumber(1, 8, false)
            If type_planetes = "1" Then
                type_planetes = "Desertique"
                temperature_classique = VelerSoftware_GeneralPlugin.RandomNumber(-180, 9900, false)
                masse = VelerSoftware_GeneralPlugin.RandomNumber(1000000, 99999999, false)
                diametres = VelerSoftware_GeneralPlugin.RandomNumber(100, 999999, false)
                hydrogene = VelerSoftware_GeneralPlugin.RandomNumber(1, 80, false)
                helium = VelerSoftware_GeneralPlugin.RandomNumber(1, 10, false)
                oxygene = VelerSoftware_GeneralPlugin.RandomNumber(1, 80, false)
                carbone = VelerSoftware_GeneralPlugin.RandomNumber(1, 20, false)
                fer = VelerSoftware_GeneralPlugin.RandomNumber(1, 60, false)
                neon = VelerSoftware_GeneralPlugin.RandomNumber(1, 30, false)
                azote = VelerSoftware_GeneralPlugin.RandomNumber(1, 5, false)
                silicium = VelerSoftware_GeneralPlugin.RandomNumber(1, 10, false)
                magnesium = VelerSoftware_GeneralPlugin.RandomNumber(1, 5, false)
                souffre = VelerSoftware_GeneralPlugin.RandomNumber(1, 40, false)
                heurestour = VelerSoftware_GeneralPlugin.RandomNumber(11, 26, false)
                If hydrogene < "30" Then
                    text_explosifs = "- Aucun risque d'explosion en vue du faible dosage d'hydrogène dans l'atmosphère."
                Else
                    text_explosifs = "- Risque d'explosion due à l'hydrogène trop élevée. Une étincelle et tout risque de sauter."
                End If
                If oxygene < "45" Then
                    text_habitables = "- Cette planète ne peut pas être habité à cause de son trop faible niveau d'oxygène dans l'atmosphère."
                Else
                    text_habitables = "- Cette planète peut être habitée (taux Oxygène parfait) !"
                End If
                If temperature_classique < "60" Then
                    text_temperatures = "- Cette planète peut contenir de la vie car sa température est supportable !"
                Else
                    text_temperatures = "- Cette planète ne peut pas contenir de vie car sa température est trop élevée."
                End If
                If heurestour = "24" Then
                    text_divers = "- Cette planète a un cycle de rotation parfait !"
                Else
                    text_divers = "- Cette planète a un cycle de rotation imparfait."
                End If
                _computer.FileSystem.WriteAllText("" & System.Windows.Forms.Application.StartupPath & "\procedural-planetes\" & type_planetes & "-" & codes_planetes & ".txt", "Nom de la planète : " & codes_planetes & "" & System.Environment.NewLine & "Type de la planète : " & type_planetes & "" & System.Environment.NewLine & "Masse : " & masse & " Kg" & System.Environment.NewLine & "Diamètre : " & diametres & " Km" & System.Environment.NewLine & "Température surface : " & temperature_classique & " °C (Degres celcius)" & System.Environment.NewLine & "Nombres d'heures pour une rotation : " & heurestour & " Heures" & System.Environment.NewLine & "" & System.Environment.NewLine & "Compositions globale : " & System.Environment.NewLine & "" & System.Environment.NewLine & "Hydrogène : " & hydrogene & " VPL" & System.Environment.NewLine & "Hélium : " & helium & " VPL" & System.Environment.NewLine & "Oxygène : " & oxygene & " VPL" & System.Environment.NewLine & "Carbone : " & carbone & " VPL" & System.Environment.NewLine & "Fer : " & fer & " VPL" & System.Environment.NewLine & "Néon : " & neon & " VPL" & System.Environment.NewLine & "Azote : " & azote & " VPL" & System.Environment.NewLine & "Silicium : " & silicium & " VPL" & System.Environment.NewLine & "Magnésium : " & magnesium & " VPL" & System.Environment.NewLine & "Souffre : " & souffre & " VPL" & System.Environment.NewLine & "" & System.Environment.NewLine & "Procedural-Planetes by AlgoStep Company" & System.Environment.NewLine & "---------------------------------------" & System.Environment.NewLine & "Analyse des conditions spécifiques internes : " & System.Environment.NewLine & "" & text_habitables & "" & System.Environment.NewLine & "" & text_temperatures & "" & System.Environment.NewLine & "" & text_explosifs & "" & System.Environment.NewLine & "" & text_divers & "", False, System.Text.Encoding.Default)
            Else
                If type_planetes = "2" Then
                    type_planetes = "forestiere"
                    temperature_classique = VelerSoftware_GeneralPlugin.RandomNumber(-5, 70, false)
                    masse = VelerSoftware_GeneralPlugin.RandomNumber(1000000, 99999999, false)
                    diametres = VelerSoftware_GeneralPlugin.RandomNumber(100, 999999, false)
                    hydrogene = VelerSoftware_GeneralPlugin.RandomNumber(1, 80, false)
                    helium = VelerSoftware_GeneralPlugin.RandomNumber(1, 10, false)
                    oxygene = VelerSoftware_GeneralPlugin.RandomNumber(1, 80, false)
                    carbone = VelerSoftware_GeneralPlugin.RandomNumber(1, 20, false)
                    fer = VelerSoftware_GeneralPlugin.RandomNumber(1, 5, false)
                    neon = VelerSoftware_GeneralPlugin.RandomNumber(1, 5, false)
                    azote = VelerSoftware_GeneralPlugin.RandomNumber(1, 3, false)
                    silicium = VelerSoftware_GeneralPlugin.RandomNumber(1, 2, false)
                    magnesium = VelerSoftware_GeneralPlugin.RandomNumber(1, 3, false)
                    souffre = VelerSoftware_GeneralPlugin.RandomNumber(1, 2, false)
                    heurestour = VelerSoftware_GeneralPlugin.RandomNumber(23, 27, false)
                    If hydrogene < "30" Then
                        text_explosifs = "- Aucun risque d'explosion en vue du faible dosage d'hydrogène dans l'atmosphère."
                    Else
                        text_explosifs = "- Risque d'explosion due à l'hydrogène trop élevée. Une étincelle et tout risque de sauter."
                    End If
                    If oxygene < "45" Then
                        text_habitables = "- Cette planète ne peut pas être habité à cause de son trop faible niveau d'oxygène dans l'atmosphère."
                    Else
                        text_habitables = "- Cette planète peut être habitée (taux Oxygène parfait) !"
                    End If
                    If temperature_classique < "60" Then
                        text_temperatures = "- Cette planète peut contenir de la vie car sa température est supportable !"
                    Else
                        text_temperatures = "- Cette planète ne peut pas contenir de vie car sa température est trop élevée."
                    End If
                    If heurestour = "24" Then
                        text_divers = "- Cette planète a un cycle de rotation parfait !"
                    Else
                        text_divers = "- Cette planète a un cycle de rotation imparfait."
                    End If
                    _computer.FileSystem.WriteAllText("" & System.Windows.Forms.Application.StartupPath & "\procedural-planetes\" & type_planetes & "-" & codes_planetes & ".txt", "Nom de la planète : " & codes_planetes & "" & System.Environment.NewLine & "Type de la planète : " & type_planetes & "" & System.Environment.NewLine & "Masse : " & masse & " Kg" & System.Environment.NewLine & "Diamètre : " & diametres & " Km" & System.Environment.NewLine & "Température surface : " & temperature_classique & " °C (Degres celcius)" & System.Environment.NewLine & "Nombres d'heures pour une rotation : " & heurestour & " Heures" & System.Environment.NewLine & "" & System.Environment.NewLine & "Compositions globale : " & System.Environment.NewLine & "" & System.Environment.NewLine & "Hydrogène : " & hydrogene & " VPL" & System.Environment.NewLine & "Hélium : " & helium & " VPL" & System.Environment.NewLine & "Oxygène : " & oxygene & " VPL" & System.Environment.NewLine & "Carbone : " & carbone & " VPL" & System.Environment.NewLine & "Fer : " & fer & " VPL" & System.Environment.NewLine & "Néon : " & neon & " VPL" & System.Environment.NewLine & "Azote : " & azote & " VPL" & System.Environment.NewLine & "Silicium : " & silicium & " VPL" & System.Environment.NewLine & "Magnésium : " & magnesium & " VPL" & System.Environment.NewLine & "Souffre : " & souffre & " VPL" & System.Environment.NewLine & "" & System.Environment.NewLine & "Procedural-Planetes by AlgoStep Company" & System.Environment.NewLine & "---------------------------------------" & System.Environment.NewLine & "Analyse des conditions spécifiques internes : " & System.Environment.NewLine & "" & text_habitables & "" & System.Environment.NewLine & "" & text_temperatures & "" & System.Environment.NewLine & "" & text_explosifs & "" & System.Environment.NewLine & "" & text_divers & "", False, System.Text.Encoding.Default)
                Else
                    If type_planetes = "3" Then
                        type_planetes = "glaciere"
                        temperature_classique = VelerSoftware_GeneralPlugin.RandomNumber(-70, 1, false)
                        masse = VelerSoftware_GeneralPlugin.RandomNumber(1000000, 99999999, false)
                        diametres = VelerSoftware_GeneralPlugin.RandomNumber(100, 999999, false)
                        hydrogene = VelerSoftware_GeneralPlugin.RandomNumber(1, 80, false)
                        helium = VelerSoftware_GeneralPlugin.RandomNumber(1, 30, false)
                        oxygene = VelerSoftware_GeneralPlugin.RandomNumber(1, 80, false)
                        carbone = VelerSoftware_GeneralPlugin.RandomNumber(1, 20, false)
                        fer = VelerSoftware_GeneralPlugin.RandomNumber(1, 5, false)
                        neon = VelerSoftware_GeneralPlugin.RandomNumber(1, 2, false)
                        azote = VelerSoftware_GeneralPlugin.RandomNumber(1, 2, false)
                        silicium = VelerSoftware_GeneralPlugin.RandomNumber(1, 3, false)
                        magnesium = VelerSoftware_GeneralPlugin.RandomNumber(1, 3, false)
                        souffre = VelerSoftware_GeneralPlugin.RandomNumber(1, 2, false)
                        heurestour = VelerSoftware_GeneralPlugin.RandomNumber(6, 526, false)
                        If hydrogene < "30" Then
                            text_explosifs = "- Aucun risque d'explosion en vue du faible dosage d'hydrogène dans l'atmosphère."
                        Else
                            text_explosifs = "- Risque d'explosion due à l'hydrogène trop élevée. Une étincelle et tout risque de sauter."
                        End If
                        If oxygene < "45" Then
                            text_habitables = "- Cette planète ne peut pas être habité à cause de son trop faible niveau d'oxygène dans l'atmosphère."
                        Else
                            text_habitables = "- Cette planète peut être habitée (taux Oxygène parfait) !"
                        End If
                        If temperature_classique < "60" Then
                            text_temperatures = "- Cette planète peut contenir de la vie car sa température est supportable !"
                        Else
                            text_temperatures = "- Cette planète ne peut pas contenir de vie car sa température est trop élevée."
                        End If
                        If heurestour = "24" Then
                            text_divers = "- Cette planète a un cycle de rotation parfait !"
                        Else
                            text_divers = "- Cette planète a un cycle de rotation imparfait."
                        End If
                        _computer.FileSystem.WriteAllText("" & System.Windows.Forms.Application.StartupPath & "\procedural-planetes\" & type_planetes & "-" & codes_planetes & ".txt", "Nom de la planète : " & codes_planetes & "" & System.Environment.NewLine & "Type de la planète : " & type_planetes & "" & System.Environment.NewLine & "Masse : " & masse & " Kg" & System.Environment.NewLine & "Diamètre : " & diametres & " Km" & System.Environment.NewLine & "Température surface : " & temperature_classique & " °C (Degres celcius)" & System.Environment.NewLine & "Nombres d'heures pour une rotation : " & heurestour & " Heures" & System.Environment.NewLine & "" & System.Environment.NewLine & "Compositions globale : " & System.Environment.NewLine & "" & System.Environment.NewLine & "Hydrogène : " & hydrogene & " VPL" & System.Environment.NewLine & "Hélium : " & helium & " VPL" & System.Environment.NewLine & "Oxygène : " & oxygene & " VPL" & System.Environment.NewLine & "Carbone : " & carbone & " VPL" & System.Environment.NewLine & "Fer : " & fer & " VPL" & System.Environment.NewLine & "Néon : " & neon & " VPL" & System.Environment.NewLine & "Azote : " & azote & " VPL" & System.Environment.NewLine & "Silicium : " & silicium & " VPL" & System.Environment.NewLine & "Magnésium : " & magnesium & " VPL" & System.Environment.NewLine & "Souffre : " & souffre & " VPL" & System.Environment.NewLine & "" & System.Environment.NewLine & "Procedural-Planetes by AlgoStep Company" & System.Environment.NewLine & "---------------------------------------" & System.Environment.NewLine & "Analyse des conditions spécifiques internes : " & System.Environment.NewLine & "" & text_habitables & "" & System.Environment.NewLine & "" & text_temperatures & "" & System.Environment.NewLine & "" & text_explosifs & "" & System.Environment.NewLine & "" & text_divers & "", False, System.Text.Encoding.Default)
                    Else

La génération procédurale est utiliser dans plusieurs jeu comme MineCraft (qui créer un monde aléatoirement mais pour pas que les cubes soit placés dans les airs et que les grottes soit bien placés sous terre une génération procédurale est nécessaires).

N'hésitez pas à retourner vos avis Smile !



Le site officiel de notre société : http://algostep-company.fr
Notre WebOS "Rynna" en développement : http://rynnawebos.fr/login
Le WebOS "Zator" conçu pour le forum et ses membres dispo en test ici :
http://algostep-company.fr/WebOS-Zator-Test1/
---------------------------------------------------------
avatar
polien


Masculin Nombre de messages : 2869
Age : 21
Localisation : Bouches du Rhones
Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
Humeur : Je commence tout mais ne finit rien :P
Date d'inscription : 19/05/2011

Re: Génération procédurale de planètes

Message par polien le Dim 29 Mar 2015 - 17:24

Bonjour,

Projets très intéressant, j'avais lu dans plusieurs articles que minecraft était généré avec des "recettes" mais je n'avais pas la dénomination algorithmique amusé




Cordialement,
Polien.

You want to have an english help for Software Zator ? Let's try to read the first tutorial in english Wink : CLIC HERE
BESOINS D'UN TUTO? CONSULTER LE SOMMAIRE !

Débutez avec SZ avec les tutos en pdf !
avatar
Blackorion35
Je suis là tous les jours
Je suis là tous les jours

Masculin Nombre de messages : 2565
Age : 27
Localisation : Rouen
Emploi/loisirs : Dirigeant société informatique déclaré/Informaticien au CNED
Humeur : En forme !
Date d'inscription : 19/03/2013

Re: Génération procédurale de planètes

Message par Blackorion35 le Lun 30 Mar 2015 - 9:52

Hello,

Merci Polien Smile



Le site officiel de notre société : http://algostep-company.fr
Notre WebOS "Rynna" en développement : http://rynnawebos.fr/login
Le WebOS "Zator" conçu pour le forum et ses membres dispo en test ici :
http://algostep-company.fr/WebOS-Zator-Test1/
---------------------------------------------------------

Contenu sponsorisé

Re: Génération procédurale de planètes

Message par Contenu sponsorisé


    La date/heure actuelle est Mar 26 Sep 2017 - 18:18