Auteur de niveaux
Quelqu'un qui crée des niveaux dans l'éditeur intégré au jeu, du premier essai jusqu'au niveau prêt à être soumis
Commence par Éditeur de niveaux, puis crée quelque chose de petit avec Ton premier niveau : le parcours
Quelqu'un qui crée des niveaux dans l'éditeur intégré au jeu, du premier essai jusqu'au niveau prêt à être soumis
Commence par Éditeur de niveaux, puis crée quelque chose de petit avec Ton premier niveau : le parcours
Télécharge le jeu, ouvre la liste des niveaux et joue n'importe quel niveau. Pour créer le tien, crée un niveau dans l'éditeur et mets un morceau de 1-2 minutes dans son dossier
Les bugs du jeu vont dans les issues de releases, les questions sur Discord. Joins la ligne de version des paramètres et les étapes après lesquelles le bug apparaît
Avant de jouer, le jeu montre à quel point un niveau est lourd pour ton appareil, avec une jauge de cinq barres : plus il y a de barres allumées, plus le niveau est léger. Des barres vertes veulent di
L'éditeur est intégré au jeu, il n'y a rien à installer en plus. Un niveau y est un dossier avec un morceau et des fichiers, que tu mènes du vide jusqu'à la publication
Un niveau est un dossier de fichiers, le premier se construit en six étapes, et tout l'éditeur repose sur six idées : objet, image, intervalle, calque, parent, image clé
Un niveau est un dossier ordinaire sur le disque : le fichier du niveau, les métadonnées et tout ce qu'il utilise. Construis-le en Json et transmets-le comme une copie du dossier, rien n'est à install
Six étapes jusqu'au premier test : créer un niveau, ajouter un morceau, poser le rythme, placer des objets, lancer un test, enregistrer
Objet, image, intervalle, calque, parent, image clé - les six idées sur lesquelles repose tout l'éditeur
Un niveau compte le temps dans ses propres images, pas dans les images de l'écran, il se joue donc pareil sur n'importe quel matériel. Tu fixes la durée du niveau, et mieux vaut laisser les fps à la v
Une image clé est une valeur sur une image d'une piste, plus le lissage avec lequel elle est atteinte. Tout ce qui, dans un niveau, bouge, change de couleur ou s'allume et s'éteint est une liste d'ima
Le minimum pour un niveau, c'est un morceau. Les textures et les polices, tu les apportes toi-même, et tout cela vit dans le dossier du niveau
Le minimum, c'est un morceau. Tout le reste est facultatif, et presque tout, tu l'apportes toi-même
Convertis le morceau en ogg : il pèse 8 à 10 fois moins que le wav et, contrairement au mp3, n'ajoute pas de silence au début du fichier. En dehors de l'ogg, seuls le mp3 et le wav se chargent
Si une forme fait l'affaire, prends une forme : elle n'a pas de fichier, ne coûte pas de mémoire et ne pose pas de question de droits. Fais une texture à la taille de sa place à l'écran, pas plus de 2
Un niveau vit dans son propre dossier, dans levels à l'intérieur du dossier du jeu. Ne renomme pas les fichiers qu'il utilise, et une sauvegarde complète est une copie du dossier du niveau
Un niveau que tu publies ne peut contenir que des fichiers sous une licence ouverte pas plus stricte que CC BY-NC ou avec l'autorisation de leur auteur. Un niveau pour toi-même peut être construit à p
Un morceau peut être utilisé si sa licence ouverte n'est pas plus stricte que CC BY-NC ou si son auteur a directement autorisé son usage dans le niveau. Un morceau venu de YouTube, SoundCloud ou Spoti
Une ressource est conforme si elle a une licence adaptée ou l'autorisation du titulaire des droits. Il n'y a pas de troisième voie
Sûrs par défaut : la musique de ccMixter, Freesound et Kenney, les images de Poly Haven, Pexels et Unsplash, les polices de Google Fonts. Rien ne peut être pris sur YouTube, SoundCloud ou Spotify
La fiche note d'où vient une ressource et à quelles conditions : le lien, la licence, les autorisations, les auteurs. Un champ de licence vide signifie "personne n'a vérifié", et une telle ressource e
Chaque service vérifie un niveau selon ses propres règles, donc l'un peut l'accepter et un autre le refuser. Seule une erreur bloque la publication, un avertissement envoie le niveau en modération
Écris à l'auteur avec le modèle, garde les points 1-3 intacts et conserve la réponse. Seule compte une autorisation qui permet directement de distribuer le niveau, pas une autorisation limitée à l'usa
Un bon niveau, c'est un niveau où le joueur comprend ce qui l'a tué, bouge avec la musique et a envie de réessayer
Le joueur doit comprendre ce qui l'a tué. Montre un danger avant qu'il ne devienne dangereux, laisse au moins 12 images pour réagir et fais ressortir le danger davantage que le décor
Cale d'abord la grille de pulsations : le tempo, puis le décalage, puis les pulsations par mesure. Place le sommet du niveau sur le sommet du morceau, et laisse le joueur respirer dans les breaks
Conçois en fonction des propres chiffres du joueur - ils sont tous sur 6_avatar et 7_damage - et d'une réaction humaine de 12-15 images. Montre d'abord un nouveau motif sous une forme sans risque
Garde le contenu important loin du bord : d'autres écrans placent le bord ailleurs, et l'encoche d'un téléphone peut cacher un projectile. Le tremblement de caméra marche sur une mesure, une rotation
Fais passer la couleur du contenu par une référence au thème, garde les couleurs littérales pour ce qui est vraiment unique. Active le post-traitement sur un sommet puis désactive-le, sinon les projec
Un thème est une palette de 64 couleurs à laquelle les objets renvoient par numéro d'emplacement. Change le thème, et tout ce qui y renvoie change avec lui
Construis d'abord une illustration à partir des formes intégrées et ne dessine les tiennes que là où aucune ne convient. Pose la lumière et l'ombre sur une seule forme de base, fais de chaque élément
Des habitudes, pas du design : dans quel ordre construire un niveau, comment ne pas faire le travail deux fois ni le perdre, comment le vérifier avec le bot, le transmettre et le construire avec un as
D'abord le morceau, les fps, la grille de pulsations et les marqueurs, puis un squelette en formes nues et son playtest. La décoration, le thème et les effets viennent en dernier
Des objets qu'il faudra plus tard changer tous ensemble forment un prefab, quel que soit leur nombre. Un contenu qui se décrit par une règle forme un générateur. Dans tous les autres cas, copie simple
La palette de commandes (Ctrl+Shift+P), la recherche de contenu (Ctrl+F), le bouton Localiser et les flèches sur une timeline font gagner le plus de temps. Chaque touche peut être réattribuée dans les
Ton travail est protégé par l'enregistrement automatique, l'annulation et une copie du dossier du niveau. Seule une copie du dossier est un instantané complet du niveau. Changer le format du fichier e
Un bot joue le niveau avec les mêmes contrôles que toi et vérifie la lisibilité, pas la difficulté. Il ne garantit pas que le niveau puisse être terminé
Empaquette le dossier du niveau en zip ou en tar.gz, et chiffre-le avec gpg pour un mot de passe. Sur une autre machine, le niveau décompressé se joue tout de suite, et le jeu lit lui-même ces archive
Un client IA qui parle MCP peut modifier le niveau ouvert dans l'éditeur pendant que tu regardes. Chaque lot de l'IA est une seule étape d'annulation, et l'IA ne peut ni publier, ni supprimer de fichi
Ce qui décide si un niveau tourne sur les appareils des joueurs, c'est le nombre de formes dans une image et l'overdraw. Commence par le budget du niveau, et si tu fais un niveau pour téléphones, lis
Un téléphone tient confortablement environ 1000 formes dans une image, un PC modeste 5000-10000. L'overdraw coûte plus cher que le nombre : des choses semi-transparentes sur tout l'écran, couche sur c
Sur un téléphone, un doigt couvre l'écran, et le système prend les bords. Garde l'essentiel loin des bords et teste le niveau sur un téléphone modeste : la semi-transparence plein écran l'épuise en pr
Ce que fait tel champ ou tel bouton de l'éditeur, une page par panneau, fenêtre ou onglet. La référence ne se lit pas d'un bout à l'autre : on y arrive depuis une recherche ou un lien dans un article
La liste principale des termes du projet. L'interface du jeu, cette documentation et tout autre texte sur Bullet Hero utilisent ces mots, et un nouveau terme est d'abord ajouté ici
Les métadonnées sont la couverture du niveau : nom, description, image, auteurs, classification par âge, difficulté et avertissements sur le contenu. Aujourd'hui, un niveau arrive à quelqu'un d'autre
Les timelines montrent le niveau dans le temps : les objets, les images clés de l'objet sélectionné, le modèle d'un prefab, l'audio et les événements. La grille de pulsations aide à placer tout cela s
La hiérarchie est un arbre des objets de l'image actuelle, rangés par parent. Chaque timeline a son propre tampon de presse-papiers, et la palette de commandes trouve n'importe quelle action de l'édit
L'inspecteur d'objet modifie les champs de l'objet sélectionné, l'inspecteur d'images clés modifie les images clés sélectionnées, sur toutes les pistes que touche la sélection à la fois
Un effet, ce sont des particules VFX Graph dont les paramètres sont répartis en modules : combien de particules, d'où elles partent, comment elles bougent, de quelle couleur et de quelle taille elles
Le son d'une piste audio passe par une chaîne d'effets : il y en a 11, de la normalisation et du compresseur à l'écho et à la réverbération. La chaîne, la vitesse et le volume se règlent dans l'inspec
Un générateur crée du contenu et l'applique au niveau en une seule opération, qui s'annule en une seule étape. Chaque générateur se lance depuis la fenêtre "Générateurs" de la barre d'outils
Un modificateur change ce qui est déjà dans le niveau : il retire du contenu, recalcule les fps, aplatit les prefabs, quantifie les images clés, ajuste et décale les intervalles. Un lancement s'annule
Tout ce qui appartient au niveau lui-même se règle ici : durée, images par seconde, graine, orientation, métadonnées, publication. C'est aussi d'ici que le niveau se lance, se vérifie selon les règles
Les textures, formes, thèmes, effets et prefabs d'un niveau vivent dans son dossier et voyagent avec lui. Chaque ressource a sa propre fiche avec sa source, sa licence et ses auteurs
En mode prefab, tu modifies le modèle, et l'enregistrement répercute la modification sur chacun de ses placements. On y entre avec le bouton "Modifier le prefab" dans l'inspecteur d'un placement, on r
L'export enregistre le niveau hors du jeu, sous forme de dossier ou d'archive, avec chaque fichier qu'il utilise. Un mot de passe chiffre le contenu du niveau sur le disque, et un mot de passe oublié
L'enregistrement automatique, la grille, la sélection, les gizmos et les préréglages des nouveaux niveaux se règlent ici. L'enregistrement automatique est activé par défaut et se déclenche 60 secondes
La hiérarchie, les inspecteurs et les timelines sont ancrés autour de la vue. Un clic sur la poignée au bord d'un panneau l'ouvre ou le ferme, un glissement change sa largeur
Les collections contiennent les ressources que tu réutilises d'un niveau à l'autre. Un niveau ne renvoie jamais à une collection : l'import copie la ressource à l'intérieur, et le niveau se joue parto
Un niveau ne s'envoie que depuis l'onglet "Publication" des paramètres du niveau : sous forme d'archive ou vers le Steam Workshop. Le rapport vérifie le niveau de lui-même, et ses erreurs bloquent l'e
L'éditeur rend le niveau ouvert dans un fichier vidéo grâce à ffmpeg installé sur ton ordinateur. Le rendu se fait hors temps réel, une image à la fois, donc la vidéo est exacte quelle que soit la len
Le SDK, c'est le format de niveau de Bullet Hero sous forme de bibliothèque C# ouverte. Le jeu lit et écrit les niveaux à travers lui, et ton programme peut faire de même
Le SDK, c'est le paquet BulletHero.SDK sur nuget.org, ou une compilation depuis les sources. Unity le prend comme sous-module git, et l'exemple ConsoleSmoke vérifie que tes niveaux se lisent
Un niveau est un dossier : le contenu dans level.json ou level.blob, les métadonnées dans metadata.json ou metadata.blob, une couverture et des fichiers médias. Les sauvegardes, les records et les par
Un niveau s'exporte en dossier, en tar.gz ou en zip, avec un mot de passe en option : zip avec AES-256 ou OpenPGP. Le SDK détecte le format d'un fichier reçu par ses premiers octets, pas par son nom
Il y a trois versions : gv pour le jeu, sv pour le SDK, mg pour la génération du format des modèles. D'après mg, le SDK migre un ancien fichier et refuse de lire un fichier dont la génération est plus
Tu appelles la validation toi-même via ValidationFacade, elle n'est pas intégrée à l'enregistrement ni au chargement. Les problèmes se répartissent en Error, Warning et Advice, et ValidateAndFix répar
Un service décrit les niveaux qu'il accepte dans un fichier PublishProfile : licences, sources des ressources, champs obligatoires, limites de taille. Ajouter un service, c'est écrire un fichier, pas
Bullet Hero est un hybride gratuit de jeu de rythme et de bullet hell. Aucun compte n'est nécessaire, et il n'y a pas encore de serveur. Les joueurs créent les niveaux dans l'éditeur intégré et se les
J'utilise l'IA, et je pense que ça vaut le coup. Mais correctement : comme un outil dont je vérifie le travail, pas comme quelque chose qui réfléchit à ma place. Utilisée sans réfléchir, elle produit
Bullet Hero est gratuit, tourne sur Windows et Android, et son SDK, sa documentation et ses builds sont ouverts. Le cœur gère des milliers d'objets à l'écran sur téléphone et est couvert par plus de 8
Les questions, les retours et tes niveaux vont sur Discord. Tout le monde peut aider le jeu : corriger une erreur dans la documentation, ajouter une traduction, signaler un bug ou faire un niveau
Les discussions et les questions vont sur Discord, les vidéos sur YouTube, les bugs du jeu dans les issues du dépôt bullet-hero/releases. Le code source est dans l'organisation bullet-hero sur GitHub