Brutal Pico Race presque terminé !

Cela fait maintenant 3 mois que j’ai découvert Pico8 et décidé de me lancé dans un projet “secondaire” a propos d’une course futuriste. Depuis la dernière fois, j’ai ajouté des fonctionnalités et corrigés quelques bugs. Je prévois toujours de faire un article mais je dois d’abord terminé le jeu.

Brutal Pico Race - Split screen
Brutal Pico Race – écran splité

Voici un gif animé présentant le mode 2 joueurs en écran splité (oui, même en 128×128, j’ai décidé de splité l’écran !). On peut voir les particules sur les collisions, le boost et les réacteurs. On peut aussi noté la présent de deux IA et du boost.

Je pense en avoir encore pour 1 mois à finir le code et les tests. J’espère dans le même temps pouvoir ajouter la musique et les bruitages, et ainsi rendre le jeu disponible juste avant Juillet.

J’espère que ça le fait !

YKK

A la découverte de Pico8

Cela fait un moment que je n’ai pas mis à jour le blog, c’est parce que je me suis fait piégé par PICO8 !

Un week end j’étais à la recherche d’un langage pour initier mes enfants à la programmation. J’ai pensé à Pico8 après avoir vu passé un bon nombre de tweetcards. J’ai commencé à regarder comment cela fonctionnait et… 56 jours après, me voila avec un jeu terminé à 75%, un jeu que je n’avais pas prévu de faire : Brutal pico race

Plus d’information à venir, en attendant vous pouvez me suivre sur tweeter.

A bientôt !

Brutal pico race premier test d'IA
Brutal pico race premier test d’IA

Nouvelle piste “Bots” et de retour au code !

Hello,

J’ai publié quelques jours plus tôt une nouvelle piste nommée “Bots”. Je m’amusais avec Sunvox et les effets de distorsions. Durant la même période, j’avais un exercice de composition. Les deux sujets sonnait très différents, j’ai essayé de trouver un moyen de les réunir et voila “Bots” ! Pour la mélodie, je devais trouver 4 accords dont un maximum de notes appartenait à la même gamme dans le but d’écrire une mélodie sans trop se soucier des accords derrière. Après quelques essais j’ai choisi une gamme de La mineur, qui est apparemment très utilisée, je ne le savais pas ! Pour les grincements/hurlements, qui me font penser à des robots fous, j’ai utilisé le module de distorsion native de Sunvox et jouer une à deux notes.

Maintenant je me sens plus confiant sur mes capacités à produire de la musique. J’ai encore beaucoup à apprendre, et pour cela je suis des cours de piano/composition une fois par semaine cela m’aide beaucoup. Je reprend le code du jeu qui a été mis en suspend trop longtemps maintenant ! La prochaine fois, je serais en mesure de vous montrer plus de fonction sur le puzzle lumière. Je prévois d’améliorer l’affichage de la lumière, avoir de meilleurs controles, implémenter tous les composants et implémenter la condition de victoire !

Alors, à la prochaine !

Nouvelle piste “Quest”

Hello,

Je viens de publier un nouveau morceau nommé “Quest”. C’était d’abord un exercice de composition au piano. Je devais trouver quatre accord qui sonne bien entre eux, puis les jouer de manière régulière sur 4 mesures. Ensuite je devais ajouter une mélodie en n’utilisant que les notes des accords. Le morceau commence avec l’exercice, ensuite j’essaye d’enrichir cette base en ajoutant des percussions, une ligne de bass et une autre mélodie. J’espère que cela vous plaira !

Bonne fête et bonne année à tous !

Vous pouvez retrouver les autres morceaux ici

En travaux sur le puzzle de lumière

Hello,

Cela fait un moment depuis la dernière fois. Je travaille actuellement sur le puzzle de lumière, pas aussi rapidement que je le souhaite. J’ai du gérer des obstacles sur les mécaniques de jeux. J’ai d’abord pensé qu’une réflexion basée sur un modèle physique ferait l’affaire, mais cela conduit à des cases limites sur la résolution des puzzles. On pouvait s’amuser à résoudre des puzzles en utilisant des cas limites, en jouant sur le placement des miroirs. Aussi, pour résoudre certains puzzle avec un nombre important de miroir, il faut s’assurer que le rayon est bien au milieu pour éviter que les petites erreurs successives deviennent problématique et rendent impossible la résolution du puzzle sans passer par une phase de “réglage” pour s’assurer que le rayon est pile au milieu des miroirs… J’ai donc implémenté un deuxième modèle de réflexion de la lumière, maintenant les rayons suivent la grille ! Le chemin emprunté par le rayon est maintenant plus facile à prédire et il n’est pas nécessaire de passer du temps pour que les miroirs soient visés en plein milieu.

Rayon de lumière suivant la grille

Vous pouvez essayé le modèle de réflexion ici. Les sprites et le rayon sont temporaire, il n’y a pas de condition de victoire les contrôles sont étranges… Ce que je veux dire, c’est que tout ceci est encore jeune ! Mais je voulais partager quelque chose car cela fait longtemps que je n’ai pas montré d’activité ! J’ai mis à jour l’avancement global de 30 à 35%

En même temps, je travaille aussi à acquérir de meilleurs compétences musicales au piano et en composition. Ce n’est pas visible pour le moment mais j’espère pouvoir partager un nouveau morceau, avec des accords harmonieux avant la fin de l’année !

Pour la prochaine fois, je prévois d’améliorer le bac-à-sable en ajoutant le comportement des autres composant, une condition de victoire et quelques niveaux.

A bientôt !

Ma 5e piste est en ligne et s’appelle “Journey”

La dernière fois que j’ai donné des nouvelles, j’ai indiqué que j’étais en train d’hésiter entre enchainer directement sur la suite du jeux ou faire une “pause” musicale. J’ai finalement décidé de réaliser une 5e piste nommée “Journey”. Vous pouvez l’écouter sur mon profile Soundcloud ou sur la page des pistes de ce blog. L’idée de ce morceau est venu lors de la création de la musique pour le “puzzle verrou” d’Electric Mind Pulse, avec une instrumentation lente et douce, du moins au début. Comme j’aime vraiment beaucoup le monotron, j’ai tenté de glissé un peu de son potentiel dans le morceau. J’ai réutilisé le module que j’avais réalisé sur Space Delay. J’ai aussi un peu appris et utilisé le module de modulation de fréquence avec la distorsion grace aux sons de The Handle, J’ai utilisé une sorte de gros son de “crash” sur deux transitions. Ça tranche avec le reste du coup j’aime bien !

Je suis content de publier ce morceau, parce que je me suis bien amusé à le réaliser et aussi parce que je vais maintenant pouvoir passer à la 2e partie d’Electric Mind Pulse le puzzle basé sur la lumière !

La prochaine fois je vous donnerais plus de détails à ce propos !

YKK

Electric Mind Pulse, premier puzzle terminé !

Salut !

Je suis content de vous annoncer que le premier puzzle d’Electric Mind Pulse est terminé ! Depuis le dernier article, j’ai passé beaucoup de mon temps sur la musique et un peu sur les scripts. J’ai mis en place un système qui change la musique si le signal devient faible, pour mettre la pression. J’ai réalisé 4 boucles musicales et une transition. Enfin, j’ai corrigé quelques bugs et essayé d’améliorer le ressenti du joueur.

C’est la première fois que je travaille sur tous les aspects d’un jeu, même un petit comme celui-ci. Les graphismes sont générés procéduralement, comme le jeu est basé sur une UI, cela correspond bien. La musique et les effets sonore sont fait avec Sunvox et Bfxr. Et bien sûr la programmation est faite sur Unity. Vous pouvez écouter la musique sur youtube et soundcloud.

J’espère que vous apprécierez cette première partie. N’hésitez pas à me dire ce que vous en pensez ! Au cours de mon dernier test, j’ai réussi à atteindre le niveau 28.

A partir de maintenant, je vais travailler sur un second puzzle, lumière ou énergie, je ne sais pas encore lequel. Lorsque j’ai réalisé la musique, j’ai mis de coté quelques idées de morceau. Il est possible que je sorte un nouveau morceau avant de m’attaquer sérieusement au puzzle suivant.

Rester à l’écoute, à bientôt !

System de transmission terminé !

Salut !

Ces deux dernières semaines, j’ai terminé le système de transmission, j’ai présenté Electric Mind Pulse sur Indiedb et sur le forum de canardpc. J’ai passé beaucoup plus de temps que ce que j’aurais cru.

Pour la mise en ligne sur indiedb, j’ai accumulé de multiples erreurs. D’abord j’avais mal compris les règles concernant les news… Maintenant je les maitrise, 6 médias (images, son, gifs…) ou une vidéo d’au moins une minute réalisé par l’équipe du jeu sont nécessaires ! Ensuite j’ai pris conscience qu’une vidéo serait mieux adapté que plusieurs captures d’écrans presque identiques. Alors j’ai fait une vidéo. Mais la qualité était bien trop élevée, du coup l’envoie sur youtube a mis un temps trop important ! De plus, une fois la vidéo envoyé, youtube doit encore la traiter. J’ai aussi décidé de la couper un peu. A nouveau il a fallu attendre que le traitement soit réalisé, ce qui a pris un temps important que je n’avais pas envisagé !  Le côté positif c’est qu’à la fin du week-end, j’avais mon vidéo en ligne et l’article sur indiedb a été validé, mais je n’ai rien fait d’autre… La prochaine fois, je ferais une vidéo plus courte avec une plus faible débit de sorte que toute cette phase soit plus rapide ! Je remercie feillyne d’indiedb pour sa patience pour les explications complémentaire alors que des mails automatiques expliquait déjà ce qu’il fallait faire !

Ensuite, j’ai terminé le dernier élément du puzzle verrou. Le premier obstacle étaient de trouver le meilleur moyen de dessiner les lignes représentant les données de la transmission. Je ne savais pas dans quelle mesure c’était possible. Comme unity ne propose pas d’API permettant de dessiner facilement des images complexes, les disques sont représentés par des mesh. Cependant, pour le système de transmission, il est prévu de n’afficher que des lignes droites, j’ai donc pensé qu’une image serait plus adaptée. De plus cela me paraissait plus facile pour gérer le défilement. Après quelques recherche et quelques bagarre avec le code, j’ai fini par trouver comment faire. J’ai ensuite adapté une implémentation de l’algorithme de Bresenham pour tracer des lignes et réutiliser les fonctions de tirage aléatoire qui prépare les disques pour tracer complétement l’image.

Disk mesh

Le deuxième obstacle était de trouver comment réaliser le défilement infini. J’ai utilisé une astuce toute simple, deux images défilant du bas vers le haut derrière un mask. Lorsque la première image est totalement passée, elle est réinitialisé puis replacé en bas de l’autre image.

Après cela, il me restait à faire apparaitre les failles de la transmission en rouge. Une fois complétement détectée, le joueur a 4 secondes pour l’activer. Cela déclenche un bonus choisi au hasard.

Il y a 5 bonus différents :

  • Signal boost, ajoute +5 au signal
  • Signal consuption reduction, le signal se consomme moins rapidement
  • Improved grid, accentue les contrastes de la projection
  • Overload reduction, améliore la vitesse de récupération de la surcharge
  • et un bonus rare qui place automatiquement le disque courant

Au début, j’avais imaginé un système plus compliqué où il fallait cliquer/tapé sur la zone rouge de la transmission. Mais comment faire pour ceux qui jouent au clavier ? Alors je suis passé à un système plus simple où il faut appuyer sur espace, double taper ou faire un clic droit pour activer le bonus une fois qu’il est “reconnu” par le système.

Et voila ! Depuis, j’ai attaqué la création d’effets sonore et de musique dédié au puzzle. J’espère avoir quelque chose à faire écouter la prochaine fois !

Tester en WEBGL

Transmission, animations

Hello !

Comme prévu, j’ai ajouté un peu de difficulté. Tous les 8 niveaux, le puzzle utilise les 3 styles aléatoirement pour se générer. Et cela complique bien la situation ! Je n’ai pas inséré les encoches trompeuses pour le moment. Je pense que maintenant le jouer a plus besoin d’aide que de difficulté ! Alors, comme non prévu, j’ai commencé la partie “transmission”. L’objectif est de fournir au joueur des bonus pour l’aider à résoudre les puzzles. Pour l’instant cela n’est pas fonctionnel, il ne fait que s’afficher… Je donnerais plus de détail la prochaine fois !

J’ai commencé la phase de polish :

  • J’ai changé la manière d’afficher les disques. Maintenant les couleurs sont beaucoup plus évidentes et les interactions du joueurs sont mieux percues.
  • J’ai ajouté une grille de projection, qui peut paraitre un  peu étrange au début. Mais en fait, cela aide beaucoup quand on essaye d’aligner les disques.
  • Finalement, j’ai ajouté des animations pour introduire le niveau et récompenser le joueur lors de la résolution du puzzle.

Si je m’y connaissais un peu plus en shader, je tenterais d’ajouter des effets de type glitch pour parasiter un peu l’affichage. J’essayerais plus tard, mais ce n’est pas une priorité…

Je n’ai pas eu le temps de reprendre les sons ou de mettre de la musique. C’est ma prochaine étape (avec les bonus).

En résumé, de la todo-list de la dernière fois, il reste la bande son et les encoches trompeuses. Je ne sais pas encore si je ferais les encoches pour le moment, à la place je vais faire le système de “transmission bonus”. J’y suis presque !

Vous pouvez tester la version WEBGL ici.

Corrections et vacances !

Salut !

Voici quelques nouvelles. Depuis que j’ai mis en ligne le premier prototype, j’ai passé un peu de temps pour corriger des problèmes. Maintenant le clavier se comporte correctement et le système de surcharge ne fait plus n’importe quoi.Après, j’ai profiter d’un peu de vacances ! Prendre du temps et profiter de sa famille est aussi une étape importante.

Maintenant, les étapes suivantes sont :

  • Plus de difficulté :
    • en insérant des encoches trompeuses dans les disques,
    • en utilisant des disques de forme différentes,
  • et… la phase de polish :
    • avec un meilleur retour pour les différentes actions du joueur
    • avec de meilleurs sons,
    • avec une animation de connexion au début
    • et 2 styles de disques supplémentaires pour ajouter de la diversité

La version WEBGL est toujours disponible ici.