Le jeu est maintenant suffisamment avancé pour pouvoir créer des charts à peu près convenablement (mais pas encore y jouer). Pour ceux qui voudraient essayer, je vais donc expliquer comment procéder pour créer une chart pour Koto.

Mise en place de l'environnement

  1. Si vous n'avez encore jamais lancé le jeu, lancez le une première fois pour qu'il crée le dossier de jeu et le fichier d'option
  2. Dans le dossier de jeu (répertoire utilisateur/koto, par exemple C:\Users\Julien\koto) créez un nouveau dossier. Ce sera le dossier de la chart.
  3. Copiez dans ce dossier la musique au format ogg vorbis. (Pour le moment, je ne prend que les formats ogg, c'est ça de tout recoder à la main...)
  4. Encore dans le dossier créez un fichier texte vide avec l'extension .koto
  5. Dans le fichier d'options (options.properties) ajoutez une ligne contenant debug=dossier de la chart/chart.koto.

Voilà, c'est presque prêt, il reste plus qu'à créer la chart. (Si vous lancez le jeu à ce stade là, ça va planter. Normal, le fichier .koto est vide !)

Ecrire le fichier .koto

Maintenant, la partie la plus difficile : écrire la chart. Je vais juste expliquer comment s'écrivent les chart, pas comment en faire une bien, tout simplement parce que le gameplay est encore expérimental et que je ne sais pas encore moi non plus comment faire.

L'en-tête du fichier

Tous les fichiers commencent comme ça :

(Koto Music Sheet v1)

(Informations)

Title : Natsu-Tsukuyo # ca j'explique pas
Genre : Asian Mixture
Artist : Kei Izumi
Author : Mr_Qqn

(Song Params)

File : natsutsukuyo.ogg  # nom du fichier de musique
BPM : 93  # tempo initial
Mesure Size : 4  # nombre de pulsation par mesure
Offset : 0.668  # décalage audio en secondes

(Music) # Indique la fin de l'en-tête, ce qui va suivre sera la chart

Le décalage audio correspond au temps entre l'instant 0 du fichier ogg et l'instant ou démarre réellement la musique. Ca se mesure facilement en ouvrant le fichier dans Audacity par exemple.

Les commentaires débutent avec # et s'arrêtent à la fin de la ligne. Pratique pour se repérer dans un fichier de plus de 1000 lignes.

Les notes

Ici on va positionner les notes sur le clavier et dans le temps.

On positionne les notes sur les lignes (de bas en haut) en les plaçant les unes à la suite de autres (de gauche à droite), et on les positionne à l'intérieur de chaque ligne (de gauche à droite) avec les nombre de 0 à 9. Pour indiquer un vide on utilise le caractère "_". Quelques exemples pour être plus clair :

0 _ _ _ # note 0 de la ligne 1 => W
_ 5 _ _ # note 5 de la ligne 2 => G
_ _ 2 9 # note 2 de la ligne 3 + note 9 de la ligne 4 => E + 0 (ou à)

Si la suite ne contient que des _ pas besoin de les indiquer

5 # note 5 de la ligne 1 => N
_ 6 # note 6 de la ligne 2 => J

Pour positionner dans le temps, on va grouper les notes par mesure et les notes seront réparties équitablement dans la mesure. On sépare les mesures avec une ou plusieurs lignes vides. Par exemple :

2 _ _ _  # 0/4 de la mesure 1
_ 5 _ 0  # 1/4 de la mesure 1
_ # rien
6 # 3/4 de la mesure 1

        # nouvelle mesure

3       # 0/2 de la mesure 2
_ 3     # 1/2 de la mesure 2

Pour trouver la pulsation sur laquelle tombe une note, on multiplie sa position par la taille de la mesure (qui est définie dans l'en-tête). Par exemple :

avec Mesure Size : 4
0/4 => pulsation 0 (0/4 * 4)
1/4 => pulsation 1
2/4 => pulsation 2
1/2 => pulsation 2

avec Mesure Size : 2
1/4 => pulsation 0.5 (donc pile entre les pulsations 0 et 1)
1/2 => pulsation 1

Voilà, avec tout ça vous pouvez déjà écrire des charts de base ! :) Mais voilà, il arrive qu'une musique n'ai pas tout le temps le tempo fixe ou bien il arrive qu'une mesure dure moins longtemps qu'une autre, pour ça on va utiliser des événements pour modifier ces caractéristiques.

Les événements

Les événement permettent de modifier les caractéristiques d'une chart à partir de l'endroit où ils sont indiqués. On les rajoute en fin de ligne en les séparant du caractère "|". Il est aussi possible d'en mettre plusieurs par ligne. Bref, encore un petit exemple :

5 _ _ 6 | size 2 # la taille des mesures est maintenant de 2 pulsations
_ _ _ 6 | bpm 154.2 # le tempo passe à 154.2
_ _ _ 8 | mark # place un marqueur à cet emplacement
_ | mark | bpm 125 # 2 événements ensemble

Au fait, tous les noms des sections (Informations...), des propriétés (Title...) et des événements(bpm,mark...) ne sont pas sensibles à la casse, donc on peut aussi bien écrire Title : Plop, title : Plop ou TiTlE : Plop. C'est exactement la même chose.

"Débugguer" la chart

Parcequ'on va pas relancer le jeu à chaque changement et qu'on a pas envie de réécouter 50000 fois le début de la musique, j'ai inclus quelques fonctions de "débug" pour moins s'emmerder :p.

  • Entrée ou espace : switcher entre pause et lecture
  • F5 : recharger le fichier
  • Home (ou début) : rembobiner la musique
  • Page up : aller au marqueur précédent
  • Page down : aller au marqueur suivant
  • + du pavé numérique : augmenter de hi-speed
  • - du pave numérique : réduire le hi-speed

Voilà, maintenant vous savez tout, sur comment écrire un fichier koto ! Simple n'est-ce pas ? Bon peut-être pas... Si il y a des points que vous trouvez encore obscurs, envoyez moi un message que je détaille un peu le truc.

Alors y'a quelqu'un qui tente d'en écrire une ? :p

Lancer le jeu