IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

[Débat] Aléatoire ou génération procédurale


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre régulier
    Homme Profil pro
    Futur développeur, étudiant
    Inscrit en
    Juillet 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Futur développeur, étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 67
    Points : 73
    Points
    73
    Par défaut [Débat] Aléatoire ou génération procédurale
    Salut à tous,

    Voilà, aujourd'hui je voulais lancer un débat :
    Désormais, faut-il plus utiliser l'aléatoire ou la génération procédurale ? Ou les deux ?

    On voit de plus en plus de jeux générés par algorithmes (à génération procédurale). L'un d'entre eux, surement très prometteur s'appelle No Man's Sky.

    D'autres jeux déjà connus, tels que Terraria, Starbound, Diablo de Blizzard, ou bien entendu Minecraft (pour la génération de mondes), utilisent ce procédé.

    Mais il reste encore le bon vieil aléatoire (je dis peut être une connerie, peut être que le procédural existait avant).
    Minecraft en est l'exemple parfait : il utilise un algorithme pour la génération de monde, mais laisse l'aléatoire gérer des événements tels que le spawn des mobs.

    L'aléatoire reste encore beaucoup utilisé, surtout pour des jeux indépendants.

    Alors, utiliseriez vous plus la génération procédurale ou l'aléatoire dans vos jeux ?
    Qu'en pensez vous pour le futur ?

    J'attends vos avis !

  2. #2
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 639
    Points : 2 347
    Points
    2 347
    Par défaut
    La génération procédurale fait souvent (mais ce n'est pas obligatoire) appel à des GNA... du coup je ne suis ni sûr de bien comprendre ta question, ni sûr que tu la comprends toi-même ???

  3. #3
    Membre régulier
    Homme Profil pro
    Futur développeur, étudiant
    Inscrit en
    Juillet 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Futur développeur, étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 67
    Points : 73
    Points
    73
    Par défaut
    CodeurPlusPlus> Ce que j'appelle génération procédurale, c'est par exemple qu'au lieu d'aléatoire pour dire "y aura ou y aura pas une montagne ici", ce soit un algorithme qui a partir d'un nombre constant (une seed), définit la génération du jeu, afin que si la seed est la même, il y aura toujours la montagne. Corrigez moi si je me trompe dans l'appellation de cette méthode (je pense aussi savoir ce que sont des GNA mais je ne saurais comment expliquer)

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 577
    Points
    218 577
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Je pense qu'il faut revenir ce qu'est la génération d'un autre aléatoire (ou plus précisément, pseudo aléatoire) en informatique.
    En informatique, il n'est pas possible de générer un nombre aléatoire. Du coup, des mathématiciens/informaticiens ont inventé une règle qui permet de tirer un nombre aléatoire mais en partant d'une formule et surtout, d'une constance : la graine.
    Ensuite, il y a plusieurs algorithme/formule, mais le but de celles-ci c'est d'assurer une uniformité sur les nombres générés. En effet, vous aurez autant de chance d'avoir un 2, un 478, ou un 42.
    Par contre, la graine est une constante. Si on définit la graine comme constante, on retrouvera toujours les mêmes séries de nombres. Pour faire un aléa encore plus "pur", on va souvent définir cette graine en fonction du temps. Ainsi, si vous lancez deux fois le même programme à deux temps différents, vous avez des nombres différents. Mais si vous trichez et que vous modifiez la variable temps pour qu'elle devienne constante, alors vos nombres générés seront toujours les mêmes.

    La génération procédurale utilise les nombre aléatoires. Le souci avec les nombres aléatoires dans les jeux, c'est qu'ils sont aléatoires. Imaginez, je prends un tableau et j'y applique des couches aléatoires de peintures ici et là (aléatoirement). C'est moche. Ça donne ça en informatique (merci GIMP) :
    Nom : bruit.png
Affichages : 815
Taille : 227,6 Ko
    Tellement c'est nul que l'on appelle ça du bruit

    Si on faisait cela pour un jeu vidéo, alors le gameplay serait détruit/nul/incohérent.

    Donc, dans la génération procédurale, on va faire en sorte d'appliquer des règles (aussi appelées contraintes). C'est contraintes, cela peut être tout est n'importe quoi. Dans Minecraft et Terraria (Minecraft 2D ), certaines contraintes sont liées à l'altitude : au dessus de 1000, il y a des nuages ... en dessous de -1000 on a de la lave. Entre on a des grottes et ainsi de suite.
    No Man's Sky (qui semble être un chef d'oeuvre) utilise ce même principe mais pousse le concept à son paroxysme.

    Donc, toujours, à la base de la génération procédurale, il y a une graine (que l'on peut reproduire ou autre et comme dans Binding Of Isaac, en gardant une graine on peut rejouer à la même partie). Cette graine génère des nombres qui viendront nourrir l'algorithme pour la création des mondes, des objets, des ennemis et ainsi de suite.

    En plus de cette explication, vous pouvez lire :
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Génération procédurale de cours d'eau / rivières
    Par Romuald_78 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 13/02/2015, 15h58
  2. Réponses: 1
    Dernier message: 15/02/2014, 12h27
  3. Game Connection 2013 - Europe : La génération procédurale
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 23/01/2014, 21h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo