No description
Find a file
2026-01-07 16:06:10 +01:00
bin interface de jeu 2026-01-07 15:26:12 +01:00
models up configs 2026-01-07 15:59:08 +01:00
node_modules interface de jeu 2026-01-07 15:26:12 +01:00
public emoji status 2026-01-07 16:06:10 +01:00
routes up configs 2026-01-07 15:59:08 +01:00
views emoji status 2026-01-07 16:06:10 +01:00
app.js interface de jeu 2026-01-07 15:26:12 +01:00
Caddyfile up configs 2026-01-07 15:59:08 +01:00
heliagotchi.db emoji status 2026-01-07 16:06:10 +01:00
package-lock.json interface de jeu 2026-01-07 15:26:12 +01:00
package.json interface de jeu 2026-01-07 15:26:12 +01:00
README.md interface de jeu 2026-01-07 15:26:12 +01:00

Héliagotchi

Jeu d'animal dont on doit prendre soin.

i Un jeu de type Tamagotchi développé avec Express.js et SQLite.

Installation

  1. Installer les dépendances :
npm install

Si vous rencontrez une erreur avec better-sqlite3, vous devrez peut-être installer les dépendances de compilation :

Sur Ubuntu/Debian :

sudo apt-get install build-essential python3

Sur Fedora/RHEL :

sudo dnf install gcc-c++ python3

Sur macOS :

xcode-select --install

Puis réinstaller :

npm rebuild better-sqlite3
# ou
npm install
  1. Démarrer l'application :
npm start

L'application sera accessible sur http://localhost:3124

Initialisation de la base de données

La base de données SQLite s'initialise automatiquement au premier démarrage de l'application. Aucune action manuelle n'est requise.

Fichier de base de données

Le fichier de base de données est créé automatiquement à l'emplacement suivant :

heliagotchi.db

Ce fichier est créé dans le répertoire racine du projet lors du premier démarrage.

Structure de la base de données

La base de données contient deux tables principales :

  1. heliagotchi : Stocke l'état actuel du héliagotchi

    • Propriétés : humeur, calin, proprete, age
    • Informations : age_stage, etat, heure_virtuelle
    • Métadonnées : start_time, naissance_time, derniere_consultation, score_soins
  2. historique : Stocke l'historique des états pour les graphiques

    • Enregistre les valeurs toutes les heures virtuelles
    • Conserve les 100 derniers enregistrements

Réinitialisation de la base de données

Pour réinitialiser complètement la base de données :

  1. Via l'interface web : Utilisez le bouton "Réinitialiser le jeu" sur la page d'accueil (si l'animal est mort)

  2. Manuellement : Supprimez le fichier heliagotchi.db et redémarrez l'application

rm heliagotchi.db
npm start

La base de données sera recréée automatiquement avec les valeurs par défaut.

Migration automatique

L'application gère automatiquement les migrations de schéma. Si de nouvelles colonnes sont ajoutées dans une mise à jour, elles seront créées automatiquement au démarrage sans perte de données.

Configuration Caddy

Un fichier Caddyfile est fourni pour configurer un reverse proxy avec Caddy.

Fonctionnalités

  • Création et gestion d'un héliagotchi
  • Système d'évolution (bébé → enfant → ado → adulte)
  • Actions : câlin, jouer, soigner, nourrir
  • Graphiques d'évolution
  • Interface d'administration pour modifier manuellement l'état

Routes

  • / - Page d'accueil
  • /accueil - Page principale du jeu
  • /statut - Statut détaillé du héliagotchi
  • /graphs - Graphiques et planification
  • /admin - Interface d'administration

Génération de sons 8-bit

Le jeu génère des mélodies 8-bit pour chaque action en utilisant la Web Audio API du navigateur.

Principe technique

Les sons sont générés en temps réel avec :

  • Oscillateurs : génèrent des ondes carrées (type "square") pour le son caractéristique 8-bit
  • Gain nodes : contrôlent le volume avec une enveloppe ADSR (Attack, Decay, Sustain, Release)
  • Contexte audio : initialisé après la première interaction utilisateur (politique de sécurité des navigateurs)

Structure des mélodies

Chaque action a sa propre mélodie définie comme une séquence de notes :

  • Fréquence : hauteur de la note en Hz (ex: 440 Hz = La4)
  • Durée : temps pendant lequel la note est jouée (en secondes)
  • Timing : moment où la note commence (relatif au début de la mélodie)

Mélodies par action

  • Câlin (1.5s) : Mélodie douce et apaisante (Do-Mi-Sol)
  • Jouer (1.8s) : Mélodie joyeuse et énergique avec progression ascendante
  • Soigner (1.5s) : Mélodie rassurante avec descente harmonieuse
  • Nettoyer (1.2s) : Mélodie claire et nette avec montée vers l'octave supérieure
  • Nourrir (1.6s) : Mélodie satisfaisante avec progression mélodique
  • Lumière (1.0s) : Mélodie douce et courte (Do grave vers Do aigu)
  • Réanimer (2.0s) : Mélodie urgente et puissante avec montée progressive

Contrôle du son

Un bouton permet d'activer/désactiver le son (mode silencieux). L'état est sauvegardé dans le localStorage du navigateur.