Izual

[SD] Surface Dwellers (ex Alamo)

Noter ce sujet

103 messages dans ce sujet

Le problème vient de l'idée qu'on se fait d'un % en fait.
Les probabilités, c'est tout un métier, et ce n'est pas mon domaine ^^.

Dire qu'une chose à 50% de chance de se produire ne signifie pas qu'elle se produira 1 fois sur 2.
La fonction Random s'efforce juste de sortir un tirage "le plus aléatoire possible" entre 2 bornes. Donc, aucun nombre n'étant "favorisé", ils ont en effet, théoriquement, chacun autant de chance de sortir...
Mais dans la pratique, cela ne nous amène pas bien loin.

Bref, pour faire simple.
Exemple sur 4 listes :
- listes numérotées (1,2,3,4)
- un rand(1,4) déterminerait la liste tirée
- chacune aurait autant de chance qu'une autre de sortir
Mais "égalité des chances" ne signifie pas "équité des résultats" (on en sait quelque chose en france, hein :o), donc tu pourrais très bien te retrouver avec le même tirage plusieurs fois de suite... l'équité n'apparait que sur le long (très long) terme, en tant que moyenne.

Cela dit, ça se manipule ces choses-là.
On peut imaginer mettre une limite à la récurrence du résultat (voir une différente pour chaque item) => relancer le tirage en cas de résultat identique plus de n fois.
Ce genre de bidouille quoi.

--------- edit ----------

Et merci de t'intéresser à mon problème o/ !

J'aimerai bien voir l'aspect "survivor" ressortir plus souvent dans les projets.
Cela dit, j'ai quelques doutes sur ce que donnera le tien, à voir une fois en place ^^

Partager ce message


Lien à poster
Partager sur d’autres sites

Au niveau de ce que tu expliques sur les listes numérotées, ça me semble assez facile à biaiser. Mettons que j'ai 4 objets à vouloir faire spawner : Une pelle, un pistolet, un fusil, une armure. Disons que je voudrais que la pelle ait 40% de chances de spawner, le pistolet 30%, le fusil 20% et l'armure 10%.

Il suffit de faire 10 listes :

1. Pelle.
2. Pelle.
3. Pelle.
4. Pelle.
5. Pistolet.
6. Pistolet.
7. Pistolet.
8. Fusil.
9. Fusil.
10. Armure.


De cette façons, certes l'armure peut toujours popper 50 fois de suite, mais par contre on a favorisé certains items. Est-ce que ça marcherait ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Dans l'idée, c'est bien ça.
=> un gros dés de 10 faces, certains items sont sur plus d'une face.
Seulement, cela ne correspondrait pas "en réalité" à 1 face = 10%...

1. Pelle.
2. Pelle.
3. Pistolet.
4. Fusil.
5. Armure.
6. Fusil.
7. Pistolet.
8. Pistolet.
9. Pelle.
10. Pelle.

Cette table pourrait donner des résultats bien différents...

Je ne sais pas ce que donne la rand en C.
J'ai utilisé celle de php pour un autre projet, et il semble que les résultats tendent à rester groupé autour de la médiane (tirage sur 100).

Donc, se méfier des fonctions Random en général.
Par contre, on peut trouver des moyens de les utiliser...
Tout est question de méthode, la Rand n'est qu'un outil il ne faut pas trop lui en mettre sur les épaules.

Partager ce message


Lien à poster
Partager sur d’autres sites

Dans l'idée, c'est bien ça. => un gros dés de 10 faces, certains items sont sur plus d'une face. Seulement, cela ne correspondrait pas "en réalité" à 1 face = 10%... Cette table pourrait donner des résultats bien différents... Je ne sais pas ce que donne la rand en C. J'ai utilisé celle de php pour un autre projet, et il semble que les résultats tendent à rester groupé autour de la médiane (tirage sur 100). Donc, se méfier des fonctions Random en général. Par contre, on peut trouver des moyens de les utiliser... Tout est question de méthode, la Rand n'est qu'un outil il ne faut pas trop lui en mettre sur les épaules. ---------- edit ---------- Ahahah Crazy Je connais de nom et de loin, mais pas assez intime avec le Monsieur. Une piste à creuser en effet, encore faut-il avoir le niveau en math pour la comprendre suffisament.

Partager ce message


Lien à poster
Partager sur d’autres sites

Houla Image IPB C'est là que mon ignorance se révèle au grand jour, les masques tombent et tout ! Tu m'humilies :D
Bref tout ça pour dire, je ne vois pas ce qu'est un paramètre ou un return en ce qui concerne les fonctions... Fichtre.

Partager ce message


Lien à poster
Partager sur d’autres sites

Depuis la revision 24 du sdk la fonction pseudo-aléatoire a été changé par un nouvel algorithme (Mersenne twister à la place du standard C) C'est coooool non ? *sort* *revient* Les fichiers .fos sont en AngelScript, donc si tu touche a ces fichiers tu touche à de l'AngelScript :P Une fonction c'est comme un chapeau de magicien, tu peut y mettre des choses dedans et y ressortir autre chose ou ne rien y mettre ou ne rien ressortir .. Une fonction est sensé être un minimum généraliste, si elle doit mettre des objets à un endroit il faudra lui dire quels objets et à quel endroit (les paramètres). La fonction peut retourner aussi des informations ou pas, genre ici si la fonction n'ajoute plus rien après 10kg elle pourrait retourner si elle a ajouter des objets ou pas qui pourrait être intéressant de le savoir .. ou pas :P ou si le contenaire existe ou pas .. Un exemple d'une fonction à utiliser en jeu pour poper un ou des objets dans un inventaire, il faudrait en paramètre l'id du perso, l'id de l'objet et le nombre. En retour on aurait l'information si ca réussit ou pas : "Done." ou "Error object id xxx not found" ou "Access denied" .. etc .. Peut être regarder du coté des fonctions qui existe déjà (respawn_item.fos) qui procède différemment mais qui donne une bonne base. *ressort*

Partager ce message


Lien à poster
Partager sur d’autres sites

@Izual :
Ok, tu peux remettre ton masque pour l'instant ;o)
Tu as le temps de te pencher sur le sujet.
On en rediscutera, une fois que j'aurai une ébauche à te présenter.

@Berko :
Content de voir que tu es toujours sur la brèche ;o)

Depuis la revision 24 du sdk la fonction pseudo-aléatoire a été changé par un nouvel algorithme (Mersenne twister à la place du standard C)
C'est coooool non ?

Ah oui, en effet, ça a l'air de valoir le détour !
Tu l'as déjà pratiqué ?

Les fichiers .fos sont en AngelScript, donc si tu touche a ces fichiers tu touche à de l'AngelScript :P

Il me semblait qu'AS n'était "qu'une interface", pas un language à proprement parlé. ^^
"Merde, je fais de la prose !"

Peut être regarder du coté des fonctions qui existe déjà (respawn_item.fos) qui procède différemment mais qui donne une bonne base.

Toujours la meilleure méthode, c'est sûr. Observer l'existant.

------------- edit : après exploration quasi exhaustive -----------

Je n'ai trouvé que des cas où la Rand est utilisée de façon "brute".
Donc autant partir là-dessus, ça sera au même degrée d'aléatoire que le reste du jeu.
=> cad exactement le genre de liste que tu proposais Izual. ;o)
1. 1er item
...
10. 10e item
Random(1,10)
Rock N Roll

Partager ce message


Lien à poster
Partager sur d’autres sites

Euh, bien bien ! Le shmilblick avance ! Image IPB

Sinon, comme je m'ennuyais non comme j'étais bourré non APRÈS UNE ÉNIÈME NUIT BLANCHE PASSÉE A BOSSER SUR LE MOD, j'ai sorti un nouveau trailer officiel.

Hop hop hop c'est ici -> '>

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui Image IPB Comme dit dans le post (peut-être pas explicitement), c'est juste pour déconner. Un résultat plutôt amusant* (pour moi) pour une heure de "travail" Image IPB

* Le mec qui faisait les trailers a été viré.

Partager ce message


Lien à poster
Partager sur d’autres sites

Je pense qu'entre la première vidéo (la sérieuse Image IPB) et ce que j'ai dit dans ce sujet on peut avoir une vue assez claire de ce que donnera - dans l'idéal - FO:Alamo. C'est pas que je ne veux pas donner plus d'infos dessus, mais je ne vois pas trop quoi dire de plus. Maintenant il manque du contenu à montrer, c'est à dire qu'il n'y aura pas d'update avant que j'ai bien avancé.
Mais chaque jour j'avance un peu plus.

Encore merci pour ton aide sur les scripts, comme je l'ai dit en page précédente sans aide extérieure au moins au niveau codage ce projet ne verra pas le jour :-(

Partager ce message


Lien à poster
Partager sur d’autres sites

Content de voir qu'il y ait autant de "fan" ^^ Pour ceux qui souhaiteraient participer au codage, histoire de ne pas se marcher sur les pieds : Les 3 requêtes initiales d'Izu sont pour ainsi dire pliées... L'Alpha n'est plus très loin ! Prochaines étapes : 1- les IA 2- Beta = balance mobs/player item 3- l'optimisation du code (soyons Visionnaires !) Donc si vous avez déjà tripotté certaines classes (Map/NpcPlane en particulier) N'hésitez pas à me contacter en MP.

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Vous postez un commentaire en tant qu’invité. Si vous avez un compte, merci de vous connecter.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

Chargement

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.