LIVEGOTCHI — MÉTHODE DE CRÉATION ================================ Ce guide est la méthode et la référence du code d'un œuf LiveGotchi : comment on dessine une créature, ses évolutions, ses pouvoirs, un décor, et ce que le code doit dire. Il se lit aussi bien qu'il se donne à une IA à qui on demande d'en écrire un. Tout ce qui est écrit ici est ce que l'atelier de création accepte, ni plus ni moins. Version illustrée, avec ses tableaux : la page /guide-ia.html du même site. CE QU'ON TE DEMANDE ------------------- LiveGotchi est une créature en pixels qui vit sur l'overlay d'un direct Twitch. Elle naît d'un œuf, éclot, puis évolue d'étape en étape selon ce que le direct lui apporte. Un joueur te donne ce guide, souvent avec un œuf existant en modèle, et te demande d'en écrire un : tu réponds avec UN SEUL DOCUMENT JSON, complet, et rien d'autre. Une clôture ```json autour est tolérée ; un commentaire, une phrase avant ou après, un JSON incomplet ne le sont pas. - Si le joueur te donne un œuf en modèle, garde sa grille et son style ; change ce qu'il te demande de changer. - Si le joueur te demande une seule animation ou une seule image, réponds avec le fragment demandé, dans la même forme que ci-dessous. - Chaque contrainte de ce guide est vérifiée à l'import : un écart refuse tout le code, avec la raison. Relis les limites à la fin avant de répondre. 1. LA STRUCTURE D'UN ŒUF ------------------------ Un œuf est un objet JSON. Ses champs : nom OBLIGATOIRE. Le nom de l'œuf, 40 caractères au plus. grille OBLIGATOIRE. Le côté de la grille de pixels : 16, 32 ou 64. La même pour toutes les images de l'œuf. Elle ne change plus après la création. genre Absent pour une créature. « sol », « papier », « element », « cadre » ou « tableau » pour un décor (voir § 9). affinite L'état que la créature aime le plus : sante, force, precision ou mana. prix Un nombre de crédits, zéro ou plus. Le joueur le règle lui-même dans l'atelier : tu peux l'omettre. repartition Comment les évènements du direct nourrissent les quatre états (voir § 8). effets Les pouvoirs de l'œuf, partagés par toutes ses étapes (voir § 7). declencheurs Ce que le chat écrit → ce que la créature ressent : un mot ou un émoji en clé, une émotion dessinée en valeur (voir § 4). etapes OBLIGATOIRE. La liste des étapes, l'œuf en premier. C'est tout l'arbre de la créature. Aucun autre champ n'est admis. Un champ inconnu refuse le code. 2. ÉTAPES, ÉCLOSIONS, ÉVOLUTIONS, BRANCHES ------------------------------------------ Chaque entrée de « etapes » est une étape de la vie de la créature : une apparence, avec ses animations, et ce qu'il faut pour y arriver. nom OBLIGATOIRE. 40 caractères au plus, unique dans l'œuf. C'est par ce nom que les autres étapes s'y rattachent. sous OBLIGATOIRE sauf pour l'œuf. Le nom de l'étape sous laquelle celle-ci se branche. Cette étape doit être déclarée plus haut dans la liste. condition Ce que la créature doit avoir accompli dans l'étape précédente pour venir ici (voir § 3). Jamais sur l'œuf. besoins Les états qui s'usent plus vite ou moins vite à cette étape. animations Les animations de cette apparence, par nom (voir § 4). effets Des pouvoirs apportés par cette étape : même forme qu'en tête de l'œuf, ils rejoignent la même liste. LES MOTS - L'ŒUF est la première étape. Elle n'a pas de « sous », pas de « condition », et une seule animation, nommée « oeuf ». - UNE ÉCLOSION est une étape juste sous l'œuf. C'est la première apparence de la créature. - UNE ÉVOLUTION est une étape sous une éclosion, ou sous une autre évolution. L'atelier les numérote : Évolution 1, Évolution 2… - DES BRANCHES sont plusieurs étapes qui se rattachent à la même. Quand la créature est prête à évoluer, elle prend la première branche, dans l'ordre de la liste, dont la condition est remplie. - LE REPLI est une branche sans condition : la créature y va quand aucune autre branche ne s'ouvre — il attend d'abord l'heure de la sœur la plus tardive, pour que chacune ait sa chance. Écris-le en dernier parmi ses sœurs. Une étape sans repli et dont aucune condition ne se remplit garde la créature où elle est. - LA PROFONDEUR compte les niveaux sous l'œuf : l'éclosion est au niveau 1, l'évolution qui la suit au niveau 2, et ainsi de suite. LES BORNES : l'œuf ouvre HUIT éclosions au plus ; une étape ouvre DIX branches au plus ; l'arbre descend DIX niveaux au plus sous l'œuf. Une créature n'a pas besoin de tout ça : une éclosion et trois ou quatre évolutions en ligne font déjà une belle vie. Un arbre linéaire (chaque étape sous la précédente, sans branche) est parfaitement valable. Les stades de la créature suivent la profondeur : éclos, petit, jeune, ado, adulte, aguerri, ancien, sage, légende, mythe. Le joueur les voit dans l'élevage ; toi, tu n'as qu'à nommer les étapes. 3. LES CONDITIONS ET LES BESOINS -------------------------------- Une « condition » est un objet dont chaque champ est un critère. Tous les critères présents doivent être remplis en même temps. Les compteurs se mesurent pendant les HEURES D'ANTENNE : le temps où le joueur est en direct. Le temps hors direct ne compte pas. minHeures entier, 1 à 2000. Heures d'antenne passées dans l'étape précédente. minMoyenne entier, 1 à 100. Moyenne des quatre états, en pour cent, au moment d'évoluer. minJauge objet état -> entier 1 à 100. Un ou plusieurs états au moins à ce niveau : { "force": 70 }. maxFautes entier, 0 à 10000. Fautes de soin tolérées dans l'étape (un état tombé à zéro). Zéro veut dire aucune faute. minCompteur objet compteur -> entier. Ce que le direct a produit pendant l'étape : { "follows": 20, "messages": 500 }. minCompteurTotal objet compteur -> entier. La même chose, comptée depuis la naissance de la créature. COMBIEN D'HEURES ? UNE ÉVOLUTION SE MÉRITE. Compte AU MOINS DIX HEURES d'antenne par étape, et jusqu'à VINGT-QUATRE pour les dernières. En dessous, la créature traverse tout l'arbre en une soirée et le joueur n'a plus rien à attendre. Ce que tu écris n'est pas une récompense à distribuer : vise un DÉFI ENGAGEANT. Le streamer doit le poursuivre sur des semaines, et son chat doit pouvoir le suivre avec lui. Trois principes : - MONTE L'EXIGENCE en descendant dans l'arbre : dix heures pour l'éclosion, quinze pour la suivante, vingt puis vingt-quatre pour les dernières. - MÊLE LES COMPTEURS DU DIRECT aux heures : une évolution qui demande des followers, des messages ou un raid donne au public un rôle à jouer. - LAISSE UN REPLI ATTEIGNABLE : une branche exigeante qui échoue doit mener quelque part, pas bloquer la créature pour toujours. LES QUATRE ÉTATS : sante, force, precision, mana. LES COMPTEURS : messages Messages du chat. chatteurs Personnes différentes ayant écrit. follows Nouveaux followers. subs Abonnements. subsOfferts Abonnements offerts. bits Bits envoyés. dons Dons. raids Raids reçus. viewersMax Viewers au sommet. hype Niveaux de hype train. recompenses Récompenses de points de chaîne. clips Clips créés. sanctions Timeouts et bans prononcés. Les « besoins » ont un seul champ, « usure » : pour chaque état, une vitesse d'usure parmi 0.5, 0.75, 1, 1.5, 2. Un état absent s'use comme d'habitude. Exemple : { "usure": { "sante": 2, "mana": 0.5 } } pour une étape fragile mais sociable. { "nom": "Renard ardent", "sous": "Renardeau", "condition": { "minHeures": 12, "minJauge": { "force": 60 }, "minCompteur": { "follows": 10 } }, "besoins": { "usure": { "force": 1.5 } }, "animations": { … } } UN TEMPÉRAMENT PAR BRANCHE, DÈS LE SOIGNÉ. Deux voies nées de la même éclosion ne se distinguent pas seulement par leur allure : donne à chaque FEUILLE (une étape qui n'a rien sous elle) ses propres « besoins ». La voie de la force mange plus, celle du mana s'ennuie plus vite. Sans cela, choisir une branche ne change rien à la façon de s'en occuper, et le choix devient décoratif. 4. LES ANIMATIONS ----------------- « animations » est un objet : le nom de l'animation en clé, et pour valeur une palette et une liste d'images. Les noms sont en minuscules, sans espace ni accent, 24 caractères au plus. Certains noms ont un rôle ; tout autre nom est admis mais l'overlay ne saura pas quand le jouer. oeuf L'œuf lui-même. Seule animation de la première étape, et nulle part ailleurs. Trois images au moins sont bienvenues : l'œuf immobile, puis fissuré. repos OBLIGATOIRE dès l'éclosion. L'attente. Ce qu'on voit le plus : soigne-la. marche OBLIGATOIRE dès l'éclosion. La créature se déplace sur l'overlay. course, saut, Chacune donne la capacité du même nom. Sans « vol », la vol, grimpe, créature ne vole pas. « grimpe-devant » est la grimpe vue grimpe-devant de face, facultative. attaque, sort Combat : le coup physique et le sort magique. Une attaque sans images ne s'emploie pas en arène. touche, Combat : être touché ; les variantes sont facultatives. touche-2, touche-3 ko Combat : être vaincu. evolution Jouée une fois à l'arrivée dans cette étape, avant le repos. Facultative : sans elle, l'apparence change d'un coup. Jamais sur l'œuf. heureux, content, Émotions : jouée à la place du repos quand la créature excite, amoureux, ressent cette émotion. Toutes facultatives. fier, ennuye, triste, fatigue, malade, colere, effraye, endormi, affame, sale dodo, assis D'autres attentes, facultatives ; une émotion peut se jouer pendant. LE SENS. « marche », « course », « saut », « vol », « grimpe », « attaque » et « sort » se dessinent UNE SEULE FOIS, LA CRÉATURE TOURNÉE VERS LA DROITE. L'overlay les retourne en miroir quand elle va vers la gauche. Ne dessine jamais une version « vers la gauche ». LE RYTHME. Chaque animation a HUIT IMAGES AU PLUS par défaut (le studio peut relever cette borne ; le joueur te le dira). Une étape a 40 animations au plus. Les images se jouent en boucle, dans l'ordre ; deux à quatre images suffisent pour un repos qui respire, quatre à six pour une marche. QUELLES ÉMOTIONS DESSINER, ET QUAND ELLES SE JOUENT Quatorze noms d'émotion sont acceptés, listés plus haut. Tu n'as pas à les dessiner toutes, et il vaut mieux en réussir quatre que bâcler quatorze. Intermédiaire 1 émotion Soigné 4 émotions Chef-d'œuvre 8 émotions QUAND ELLES SE JOUENT. L'overlay choisit UNE émotion à chaque instant, dans cet ordre, et s'arrête à la première qui répond : 1. morte, puis endormie — elles priment sur tout. 2. une humeur passagère, posée par ce qui vient de se passer, le temps qu'elle dure. 3. malade, si la santé tombe à 20 % ou moins. 4. LE BESOIN EXPRIMÉ. Il passe avant les seuils : c'est ce que la créature réclame, et c'est à lui que le streamer doit répondre. 5. fatigue sous 15 % de force, ennuye sous 15 % de précision, triste sous 15 % de mana. 6. sinon la moyenne des quatre états : heureux au-dessus de 85 %, content au-dessus de 65 %, ennuye au-dessus de 40 %, triste en dessous. L'animation qui porte le nom de l'émotion REMPLACE le repos tant qu'elle dure. Si tu ne l'as pas dessinée, le repos continue : rien ne casse, mais la créature ne dit rien de ce qu'elle ressent. LESQUELLES CHOISIR EN PREMIER. Celles que cet ordre produit vraiment : malade, affame, fatigue, ennuye, triste, content, heureux. Les rares — amoureux, fier, effraye — se dessinent après, quand les sept premières existent. RÉAGIR À CE QUE DIT LE CHAT. Le champ « declencheurs », en tête de l'œuf, associe un mot ou un émoji à une émotion : "declencheurs": { "🔥": "excite", "gg": "fier", "Kappa": "content" } Quand le chat l'écrit, la créature joue cette émotion. La clé est un mot ou un émoji de 24 caractères au plus, comparée sans majuscules ; la valeur, une émotion que la créature DESSINE — une émotion sans animation refuse le code. Soixante-quatre entrées au plus. C'est le créateur qui décide ; le streamer ne remplit que les cases laissées libres et ne réécrit jamais une clé de l'œuf. 5. LES IMAGES, LES CALQUES, LA PALETTE -------------------------------------- Une animation : "repos": { "palette": { "#": "#c8742a", "o": "#ffffff", "x": "#1a1a1a" }, "images": [ { "calques": [ { "nom": "Corps", "rangees": [ "................", … 16 rangées … ] } ] }, { "calques": [ { "nom": "Corps", "rangees": [ … ] }, { "nom": "Yeux", "opacite": 100, "rangees": [ … ] } ] } ] } - LA PALETTE est propre à l'animation : un caractère -> une couleur #rrggbb. Un caractère est un seul signe ; le point « . » est réservé au transparent et ne se déclare pas. - UNE IMAGE est une liste de CALQUES, quatre au plus, du fond vers le devant. Chaque calque a un « nom » (24 caractères au plus), ses « rangees », et, facultatifs, « visible » (vrai par défaut) et « opacite » (1 à 100). - LES RANGÉES : exactement `grille` chaînes de exactement `grille` caractères, du haut vers le bas, de gauche à droite. Chaque caractère est dans la palette, ou est le point. - Une image donnée comme simple liste de rangées, sans « calques », est acceptée : c'est un seul calque nommé « Fond ». - Une image peut porter "effets": ["Choc"] : les pouvoirs de l'œuf, par nom, qu'elle déclenche quand elle s'affiche. C'est ainsi qu'une attaque lance un projectile au bon moment. 6. LES REPÈRES DE LA GRILLE --------------------------- Une grille n'est pas un cadre flottant : c'est une scène. Trois repères la tiennent, les mêmes pour toutes les images d'un œuf. Les oublier est l'erreur de dessin la plus fréquente. - LA LIGNE DE SOL : la dernière rangée, tout en bas. Tout ce qui est posé la touche — les pieds d'une créature, le bas d'un œuf, la base d'une plante. Rien ne flotte au milieu de la grille. - L'AXE : la colonne du milieu. La créature est centrée dessus, marges égales à gauche et à droite. À 16 l'axe passe entre les colonnes 8 et 9, à 32 entre 16 et 17, à 64 entre 32 et 33. - LE CIEL : la rangée ou les deux rangées du haut. Laisse-les vides. Une créature grandit vers le haut depuis le sol, jamais depuis le centre, et une tête collée au bord se fait couper. l'axe, entre les colonnes 8 et 9 | rangée 1 ................ le ciel : vide rangée 2 ......####...... rangée 3 .....#oooo#..... rangée 4 ....#oooooo#.... ... ................ rangée 14 ....#oo..oo#.... rangée 15 .....#o..o#..... rangée 16 .....##..##..... la ligne de sol : les pieds y touchent - L'ŒUF SE POSE COMME LE RESTE. Son bas touche la dernière rangée. Un œuf centré verticalement paraît suspendu, et l'éclosion le fait sauter d'un coup. - LE SOL NE BOUGE PAS D'UNE ÉTAPE À L'AUTRE. Un bébé haut de dix rangées et un adulte de cinquante partagent la même ligne de sol : l'adulte occupe plus de rangées vers le haut. C'est ce qui donne l'impression qu'il grandit. - NI D'UNE IMAGE À L'AUTRE. Dans une animation, les pieds restent sur la même rangée ; ce qui respire, c'est le corps. Un personnage qui monte et descend en entier donne l'impression de flotter. - DEUX EXCEPTIONS, ET DEUX SEULEMENT. « vol » se dessine en l'air. « saut » quitte le sol sur ses images du milieu et le retrouve à la dernière. - LES DÉCORS ONT LEURS PROPRES REPÈRES. Une tuile de sol ou de papier peint remplit toute sa grille, bord à bord, sans marge : elle se répète, et une marge ferait un trou. Un élément, un cadre, un tableau se centrent sur l'axe et posent leur base sur la dernière rangée. La vérification tient en une ligne : regarde la dernière rangée de ton image de repos. Si elle est vide, ta créature flotte. 7. COMMENT DESSINER ------------------- Une créature LiveGotchi est du pixel art, affiché agrandi et net, sans lissage. Ce qui marche : - DES APLATS. Pas de dégradé, pas de flou, pas d'anti-crénelage, pas d'ombre douce. Chaque pixel est une couleur pleine ou rien. - PEU DE COULEURS. Quatre à huit par animation : une couleur de base, une ombre, une lumière, un contour, les yeux. Un contour sombre d'un pixel rend la silhouette lisible sur n'importe quel fond. - UNE SILHOUETTE CLAIRE. À 16, la créature occupe presque toute la grille ; à 32 et 64, laisse une marge d'un ou deux pixels et garde des formes simples. La lisibilité prime sur le détail. - LES REPÈRES TENUS. Les pieds sur la ligne de sol, le corps centré sur l'axe, le haut de la grille dégagé : voir la section précédente, c'est ce qui se rate le plus souvent. - LA COHÉRENCE. Toutes les images d'une animation gardent la même position, la même taille, la même palette. Entre deux étapes, la créature grandit ou change, mais on doit la reconnaître. - LE MOUVEMENT PAR DIFFÉRENCE. Pour une marche, déplace les pattes et fais osciller le corps d'un pixel ; pour un repos, une respiration d'un pixel et un clignement suffisent. Vérifie chaque rangée avant de répondre : le nombre de caractères est la cause d'erreur la plus fréquente. Compte-les. Une rangée de 15 ou de 17 caractères refuse tout le code. 8. LES POUVOIRS --------------- Les pouvoirs (champ « effets ») se déclarent à DEUX ENDROITS, au choix : - EN TÊTE DE L'ŒUF : le pouvoir existe pour tout l'arbre. Un cœur dessiné une fois sert au bébé comme à l'adulte. - DANS UNE ÉTAPE (même champ « effets », même forme) : le pouvoir est ACQUIS LÀ. Il sert à cette étape et à tout ce qui en descend, JAMAIS avant, jamais sur une branche sœur. La boule de feu apparaît quand la créature devient ardente, pas dans l'œuf. C'EST UNE RÈGLE, PAS UN RANGEMENT. Une image qui déclenche un pouvoir que son étape n'a pas encore acquis fait REFUSER tout le code, en te disant de quelle étape vient le pouvoir. Sers-t'en pour raconter la montée en puissance : une éclosion sobre, un adulte armé, deux branches sœurs qui divergent — la voie de la force gagne l'impact, celle du mana gagne l'aura. Un pouvoir écrit en tête de l'œuf reste disponible partout : c'est le bon endroit pour ce que la lignée entière partage. Seize au plus par œuf, toutes étapes confondues. Ils se déclenchent par leur nom depuis une image. Chacun : nom Unique, 24 caractères au plus. C'est ce nom qu'une image cite dans ses « effets ». comportement « projectile », « impact », « aura » ou « camera ». reglages Les réglages du comportement, tous facultatifs. images Une animation, dans la même forme qu'une animation d'étape, sur la grille de l'œuf. Jamais pour « camera ». projectile Part de la créature vers l'adversaire et le touche au contact. vitesse : lente, normale, rapide trajectoire : droite, cloche degats : true (fait perdre de la santé) ou false (décoratif) impact Apparaît sur la cible au moment du contact. duree : 1 à 32 images aura Joue sur soi ou sur l'adversaire, sans se déplacer. cible : soi, adversaire ; duree : 1 à 32 ; monte : true pour s'envoler en s'effaçant camera Pas de dessin : l'écran bouge. genre : tremblement, zoom, eclair, ralenti force : 1, 2 ou 3 ; duree : 1 à 32 "effets": [ { "nom": "Boule de feu", "comportement": "projectile", "reglages": { "vitesse": "rapide", "trajectoire": "droite", "degats": true }, "images": { "palette": { "#": "#ff6b1a", "o": "#ffd166" }, "images": [ [ … 16 rangées … ], [ … ] ] } }, { "nom": "Secousse", "comportement": "camera", "reglages": { "genre": "tremblement", "force": 2, "duree": 6 } } ] Puis, dans l'animation « sort » de l'étape, l'image du lancer porte "effets": ["Boule de feu", "Secousse"]. COMBIEN DE POUVOIRS, ET OÙ LES ACQUÉRIR Esquisse 0 — 1 dès qu'elle ramifie Intermédiaire 2 — un au deuxième stade, un au dernier Soigné 3 — un tous les deux stades Chef-d'œuvre 6, dont UN de caméra — trois sur le tronc, un par feuille JAMAIS DEUX AU MÊME STADE. Un pouvoir marque une étape ; deux d'un coup n'en marquent aucune. Étale-les, c'est ce qui fait sentir la montée en puissance. AU MOINS UN PAR FEUILLE DE BRANCHE, sur toute créature qui ramifie. Une voie se choisit pour ce qu'elle DONNE, pas seulement pour son allure. Une créature à deux fourches a trois feuilles : trois pouvoirs propres, en plus de ceux du tronc. DES FORMES DISTINCTES, PAS DES NOMS DISTINCTS. Deux pouvoirs d'une même créature ne partagent jamais leur silhouette ni leur couleur dominante : un orbe, un pépin, une étoile, une page. Et le nom dit le dessin — « Boule de feu » est une boule de feu, pas une aura verte. CE QUE ÇA COÛTE, ET À QUI. Les pouvoirs ne comptent pas dans les 160 animations d'un œuf : ils ont leur propre plafond, seize. Mais ils coûtent à la PUBLICATION, comme toute image : 1 crédit par image en 16 et en 32, 4 crédits en 64. Six pouvoirs de cinq images en 64, c'est 120 crédits pour le créateur. Ce n'est pas une raison d'y renoncer, c'en est une de ne pas dessiner trente images pour un éclair. 9. LA RÉPARTITION ----------------- Le direct nourrit la créature. Chaque famille d'évènements donne des points, et la « repartition » dit quelle part, en pour cent, va à chaque état. Chaque ligne fait exactement 100, en entiers. Une famille absente donne un quart à chaque état. Le champ entier est facultatif. "repartition": { "follow": { "sante": 50, "force": 20, "precision": 10, "mana": 20 }, "chat": { "sante": 10, "force": 10, "precision": 40, "mana": 40 }, "energies": { "sante": 20, "force": 60, "precision": 10, "mana": 10 }, "abonnement": { "sante": 40, "force": 10, "precision": 10, "mana": 40 }, "raid": { "sante": 10, "force": 50, "precision": 20, "mana": 20 } } Les familles : follow (followers), chat (messages), energies (bits, dons), abonnement (subs et subs offerts), raid. COMBIEN DE FAMILLES RÉGLER. Laisser la répartition vide donne un quart à chaque état pour tout : la créature se nourrit alors de la même façon d'un message et d'un raid, ce qui n'apprend rien au streamer. Règle au moins deux familles dès le soigné, trois pour un chef-d'œuvre, et rends-les DIFFÉRENTES l'une de l'autre — sinon autant tout laisser vide. 10. LES DÉCORS -------------- Un décor se code comme un œuf, avec un « genre », UNE SEULE ÉTAPE, sans « sous », sans condition, sans pouvoirs, sans répartition. Ses images ne déclenchent aucun pouvoir. Grille 16, 32 ou 64. sol Une bande au bas de l'écran, répétée sur la largeur. Animations : tuile-1, tuile-2, … jusqu'à 30, qui se suivent sans trou. Une seule tuile fait un motif répété. Chaque tuile est une animation : plusieurs images, elle bouge. papier Le fond de l'écran, répété dans les deux sens. Les mêmes tuiles. element Une plante, une lampe, un objet posé où l'on veut. Animations : « decor » (obligatoire) et « reaction » (facultative : jouée une fois quand le direct s'emballe, par exemple un chat très actif ; le joueur règle le seuil). cadre Un cadre posé autour d'une zone de l'écran. decor et reaction. tableau Une image accrochée au mur de l'overlay. decor et reaction. { "nom": "Dalles de pierre", "genre": "sol", "grille": 32, "etapes": [ { "nom": "Dalles", "animations": { "tuile-1": { "palette": { "#": "#6b6b7a", "-": "#4a4a58" }, "images": [ [ … 32 rangées … ] ] }, "tuile-2": { "palette": { "#": "#6b6b7a", "-": "#4a4a58" }, "images": [ [ … ] ] } } } ] } 11. TOUTES LES LIMITES ---------------------- Grille 16, 32 ou 64, la même pour tout l'œuf Nom de l'œuf, d'une étape 40 caractères ; noms d'étapes uniques Éclosions sous l'œuf 8 Branches sous une étape 10 Profondeur 10 niveaux sous l'œuf Animations par étape 40 ; noms en minuscules, chiffres et tirets, 24 caractères Images par animation 8 par défaut (réglable par le studio) Calques par image 4 Pouvoirs par œuf 16 ; nom de 24 caractères ; 8 pouvoirs cités au plus par image Poids d'une étape 1,5 Mo de JSON, images comprises Tuiles d'un sol ou d'un papier 30, numérotées sans trou Usure 0.5, 0.75, 1, 1.5, 2 Heures d'antenne dans une condition 1 à 2000 12. LES ERREURS LES PLUS FRÉQUENTES ----------------------------------- - Une rangée qui n'a pas exactement `grille` caractères, ou une image qui n'a pas exactement `grille` rangées. - Un caractère utilisé dans une rangée mais absent de la palette de cette animation. Chaque animation a sa propre palette. - Une couleur qui n'est pas écrite #rrggbb en six chiffres hexadécimaux. - Une étape sans « sous », ou dont le « sous » vise une étape déclarée plus bas, ou mal orthographiée. - Deux étapes du même nom. - Une animation « oeuf » hors de la première étape, ou une autre animation dans la première étape. - Une « condition » sur l'œuf, ou un critère inconnu. - Un champ que ce guide ne cite pas, à n'importe quel niveau. - Une réponse qui n'est pas uniquement le JSON. 13. UN ŒUF COMPLET EN EXEMPLE ----------------------------- Un œuf en 16 × 16, réduit à l'essentiel : l'œuf, une éclosion avec repos et marche, une évolution et son repli. { "nom": "Créature d'exemple", "grille": 16, "affinite": "force", "etapes": [ { "nom": "Œuf", "animations": { "oeuf": { "palette": { "#": "#c8742a", "o": "#f2b27a" }, "images": [ [ "................", "................", "......####......", ".....#oooo#.....", "....#oooooo#....", "....#oooooo#....", "...#oooooooo#...", "...#oooooooo#...", "...#oooooooo#...", "...#oooooooo#...", "....#oooooo#....", "....#oooooo#....", ".....#oooo#.....", "......####......", "................", "................" ] ] } } }, { "nom": "Braisillon", "sous": "Œuf", "animations": { "repos": { "palette": { "#": "#1a1a1a", "r": "#e8532a", "o": "#ffb347", "w": "#ffffff" }, "images": [ [ "................", "................", "......####......", ".....#rrrr#.....", "....#rrrrrr#....", "....#rwrrwr#....", "....#r#rr#r#....", "....#rrrrrr#....", ".....#rrrr#.....", "....#rrrrrr#....", "...#rrrrrrrr#...", "...#rrrrrrrr#...", "....#rrrrrr#....", ".....#o##o#.....", "......#..#......", "................" ], [ "................", "................", "................", "......####......", ".....#rrrr#.....", "....#rrrrrr#....", "....#rwrrwr#....", "....#r#rr#r#....", "....#rrrrrr#....", ".....#rrrr#.....", "....#rrrrrr#....", "...#rrrrrrrr#...", "...#rrrrrrrr#...", "....#rrrrrr#....", ".....#o##o#.....", "......#..#......" ] ] }, "marche": { "palette": { "#": "#1a1a1a", "r": "#e8532a", "o": "#ffb347", "w": "#ffffff" }, "images": [ [ "................", "................", "......####......", ".....#rrrr#.....", "....#rrrrrr#....", "....#rrrwrw#....", "....#rrr#r##....", "....#rrrrrr#....", ".....#rrrr#.....", "....#rrrrrr#....", "...#rrrrrrrr#...", "...#rrrrrrrr#...", "....#rrrrrr#....", ".....#o#.#o#....", "....#..#..#.....", "................" ], [ "................", "................", "......####......", ".....#rrrr#.....", "....#rrrrrr#....", "....#rrrwrw#....", "....#rrr#r##....", "....#rrrrrr#....", ".....#rrrr#.....", "....#rrrrrr#....", "...#rrrrrrrr#...", "...#rrrrrrrr#...", "....#rrrrrr#....", ".....#o##o#.....", "......#..#......", "................" ] ] } } }, { "nom": "Braisier", "sous": "Braisillon", "condition": { "minHeures": 10, "minJauge": { "force": 60 } }, "animations": { "repos": { "palette": { "#": "#1a1a1a", "r": "#e8532a" }, "images": [ [ … 16 rangées … ] ] }, "marche": { "palette": { "#": "#1a1a1a", "r": "#e8532a" }, "images": [ [ … ], [ … ] ] } } }, { "nom": "Cendrier", "sous": "Braisillon", "animations": { "repos": { "palette": { "#": "#1a1a1a", "g": "#8a8a8a" }, "images": [ [ … ] ] }, "marche": { "palette": { "#": "#1a1a1a", "g": "#8a8a8a" }, "images": [ [ … ], [ … ] ] } } } ] } Dans une vraie réponse, chaque « … » est remplacé par les rangées complètes : un code avec des points de suspension n'est pas un code.