Pico-Tamagotchi-Intro
Préambule
C'est en voyant la vidéo Make a Pico 2 powered Virtual Pet - Picotamachibi 2 de Kevin McAleer que je me suis intéressé à ce sujet.
Un projet réalisé à partir d'un Pico 2, d'un écran Oled 128 x 64px et de 3 boutons poussoir, ce qui le rend vraiment facile à mettre en oeuvre.
J'ai eu l'occasion m'attarder sur ce projet dans l'article "PicoTamachibi : créer un animal virtuel/Tamagotchi avec Raspberry-Pico 2" paru sur le blog de MCHobby.
Je me suis néanmoins interrogé sur les paramètres interne du fonctionnement de cet "animal" virtuel.
Eléments du système
Le Tamagotchi est un système régit par les éléments décrit ci-dessous
Elément | Description |
---|---|
Niveaux internes | niveaux entre 0 et 100 de différents paramètres comme: la santé (health), le bonheur (happyness) ou l'énergie (energy) pour citer les 3 principaux. Quand la santé tombe a 0 alors le Tamagotchi est mort. J'y ai ajouté quelques règles de régulation automatique parce que cela me paraît faire sens. |
Actions utilisateurs | Les actions de base sont au nombre de 4! Jouer (play), nourrir (feed), dormir (sleep), Nettoyer (clean). Ces actions ont un impact sur les niveaux internes. |
Actions Tamagotchi | Tamagotchi peu aussi produire des actions spontanément (créer des déchets, demander de l'attention, papoter, ...). Ces actions ont aussi un impact sur les différents niveaux internes. |
Dynamique de fonctionnement:
Tel que décrit dans ce document d'EduGym;
Les actions de l'utilisateur ont une influence sur les variables internes du Tamagotchi. Chaque action a un impact positif (+30) sur le niveau interne correspondant et un petit impact négatif (-5) sur les autre niveaux. Lorsque l'action n'est pas idéal selon le Tamagotchi, tous les niveaux (y compris celui qui vient d'être augmenté) sont impactés négativement (-10).
Une fois les niveaux modifiés le Tamagotchi décide quelle action devrait être prise ensuite (en fonction des poids et importances des différents niveaux internes) et génère une élocution d'une longueur correspondant. Ces élocutions peuvent être très informatifs ou du bruit.
Notes:
- les élocutions sont produites sur un élément Piezo et sont donc des séquences de notes audibles.
- Une variable (tau) permet d'influencer le rendu des élocutions (paramètre de type de "température"). Pour Tau --> 0, les élocutions sont une parfaite représentation des niveaux internes. Pour tau --> infini alors les élocutions se transforment en pure bruit.
Niveaux Internes
En compulsant quelques documentations, j'ai repéré trois niveaux principaux (en violet, partagés avec l'utilisateur) et quelques niveaux secondaires (invisible pour l'utilisateur).
Tous les niveaux évoluent entre 0 et 100.
Level (anglais) | Niveau (français) | Description |
---|---|---|
health | Niveau de santé | Représente le niveau de santé du Tamagotchi. A 0 le Tamagotchi est mort |
Happyness | Niveau de bonheur | Le niveau de bonheur tel que présenté à l'utilisateur. Suivant lecture, ce niveau est le résultat d'un calcul des trois autres niveaux: joy, energy, food. |
energy | Niveau d'énergie | L'énergie du Tamagotchi qui lui permet de se maintenir en activité (un peu comme l'énergie humaine qui permet de marcher et travailler). De 0 à 100, une valeur proche de 0 provoque l’apathie et une valeur proche de 100 un état de fébrilité/excitation. |
Joy | Niveau de joie | De 0 à 100. Représente le niveau de joie du Tamagotchi. |
Food | Niveau de nourriture | Représente le niveau d'alimentation du Tamagotchi entre 0..100 (la nourriture fournie). La nourriture est transformée en énergie et en déchets. Proche de 0, il n'y a plus d'énergie produite et la joie chute (la faim provoquant de la mauvaise humeur) |
Hunger | Niveau de faim | Représente le niveau d'alimentation du Tamagotchi (la nourriture fournie). |
Waste | Niveau de déchets | La nourriture produit de l'énergie et se transforme en déchets (des déjections). Les jeux produisent aussi des déchets (transpiration). Une importante proportion de déchets provoque une diminution de la joie mais aussi de l'état de santé. |
Le Tamagotchi, comme le montre l'interface du Picomachibi, a aussi besoin d'attention. Est-ce une fonction des autres niveaux ou faudrait-il ajouter un nouveau sous-niveau ? |
Impact sur les niveaux
Comme nous le verrons, certaines actions ont plus d'impact sur certains niveaux que sur d'autres.
Pour l'instant ce sont des valeurs discrètes (dans la gamme de valeur de 0 à 100) mais il n'est pas exclus qu'a l'avenir l'impact soit calculé à partir de graphes.
Symbole | Impact sur le niveau | Valeur discrète |
---|---|---|
↗ | Augmentation modéré | +10 |
↗↗ | Augmentation importante | +30 |
↗↗↗ | Augmentation critique | +50 |
⭬ | Aucune modification | +0 |
↘ | Diminution modéré | -10 |
↘↘ | Diminution importante | -30 |
↘↘↘ | Diminution critique | -50 |
Régulation automatique
Il paraît évident qu'il existe des règles de régulation qui modifient les niveaux de "round en round".
Celle-cis entre en jeu lorsque lorsque des seuils critiques sont atteints. A noter:
- Plusieurs règles peuvent s'appliquer par round
- Cependant une seule sélection par catégorie (Pas regul_food_0 + regul_food_1)
Nom | Règle de seuil | Conséquences | Actions | Remarques |
---|---|---|---|---|
regul_food_0 | 40 <= Food < 80 | ⭬ Health, ⭬ energy, ⭬ Joy, ⭬ food, ⭬ Hunger, ⭬ Waste | Poop | |
regul_food_1 | 80 <= Food | ↘ Health, ↘↘ energy, ↘ Joy, ⭬ food, ⭬ Hunger, ⭬ Waste | Poop, Sleep | Trop manger provoque la somnolence. |
regul_hunger_0 | 60 <= hunger < 90 | ⭬ Health, ↘↘ energy, ↘ Joy, ⭬ food, ⭬ Hunger, ⭬ Waste | Call | |
regul_hunger_1 | 90 <= hunger | ↘ Health, ⭬ energy, ⭬ Joy, ⭬ food, ⭬ Hunger, ⭬ Waste | Sleep | |
regul_waste_0 | 50 <= Waste < 70 | ↘ Health, ⭬ energy, ↘↘ Joy, ⭬ food, ⭬ Hunger, ⭬ Waste | Call | |
regul_waste_1 | 70 <= Waste | ↘↘ Health, ⭬ energy, ↘ Joy, ⭬ food, ⭬ Hunger, ⭬ Waste | Panic | Il faut réagir |
regul_health_0 | 30 <= Health | ⭬ Health, ⭬ energy, ↘↘ Joy, ⭬ food, ⭬ Hunger, ⭬ Waste | Panic | Il faut réagir |
Actions Utilisateurs
Les actions historiques possibles sur un Tamagotchi sont: Jouer, Nourrir, Dormir, Nettoyer.
Sur l'interface du Picomachibi, il y a également une icône FirstAid (soigner) qui ne fait pas partie des actions historiques.
Action (anglais) | Action (français) | Description |
---|---|---|
Play | Jouer | ↗ Health, ↘↘ energy, ↗↗ Joy, ⭬ food, ↗↗ Hunger, ↗ Waste |
Feed | Nourrir | ⭬ Health, ⭬ energy, ↗ Joy, ↗ food, ↘ Hunger, ⭬ Waste |
Sleep | Dormir | ↗ Health, ↗ energy, ↗ Joy, ⭬ food, ↗ Hunger, ↗ Waste |
Clean | Nettoyer | ↗ Health, ⭬ energy, ↗↗ Joy, ⭬ food, ⭬ Hunger, ↘ Waste |
FirstAid | Premiers soins | ↗↗ Health, ↗ energy, ⭬ Joy, ⭬ food, ⭬ Hunger, ⭬ Waste |
Actions Tamagotchi
Voici quelques actions que peut prendre un Tamagotchi (information déduite).
La prochaine action du tamagotchi est prise en fonction de l'état actuel.
Action (anglais) | Action (français) | Description |
---|---|---|
Poop | Faire ses besoins | ⭬ Health, ⭬ energy, ⭬ Joy, ↘↘ food, ⭬ Hunger, ↗↗ Waste |
Call | Appeler (réclamer de l'attention) | ⭬ Health, ↘ energy, ⭬ Joy, ⭬ food, ⭬ Hunger, ⭬ Waste |
Panic | Afficher message alerte (Tête de mort) | ⭬ Health, ⭬ energy, ⭬ Joy, ⭬ food, ⭬ Hunger, ⭬ Waste |
Sleep | Dormir | ⭬ Health, ↗ energy, ↗ Joy, ⭬ food, ↗ Hunger, ↗ Waste |
Bored | S'ennuyer | ↘ Health, ↘ energy, ↘↘ Joy, ⭬ food, ⭬ Hunger, ⭬ Waste |
Ressources
- Vidéo YouTube Make a Pico 2 powered Virtual Pet - Picotamachibi 2 de Kevin McAleer
- Article "PicoTamachibi : créer un animal virtuel/Tamagotchi avec Raspberry-Pico 2" (Blog MCHobby)
- Article "Tamogotchi" sur EduGym