Pour la Pizza Jam j'ai choisi le thème "Theater of Magic". Ce thème m'inspire et peut m'exercer sur des mécaniques que je veux utiliser pour un autre projet. Ma crainte sur ce thème lié à la magie est de prendre trop de temps sur des animations.
Je ferai les assets graphiques moi même car cette gamejam est assez longue et utiliser des assets déjà prêts ne me permet pas de m'exercer.
Pour la techno je pense utiliser un format web (sûrement HTML5 et javascript), ce format me permettra d'avoir quelque chose de visible sur ce projet quelque soit l'étape et de ne pas me soucier du déploiement du projet. Je suis tombé sur PixiJs dans une première recherche comme moteur graphique HTML/Js on va tester ça.
Ça m'embête un peu car je ne récupèrerai rien du code javascript mais ça travaillera quand même la logique.
Je n'aurai pas le temps pour les musiques et sons, je vais donc piocher dans ma banque de son.
Ma feuille de route devrait ressembler à ça :
Le joueur est dans un théatre de magie mais doit divertir le publique comme un gladiateur.
Ce sont des duels à mort entre deux mages. Le gagnant est celui qui reste en vie.
Les deux adversaires doivent lancer un sort en même temps, ces deux sorts vont se confronter et obtenir différents comportements :
J'ai fais quelques boards qui me donne une bonne idée de ce que je veux faire et j'ai rédigé les règles. Ça devrait être assez simple, je vais commencer avec peu de contenu car il y a des combinaisons qui multiplient le temps à passer dessus.
J'ai fais les assets de la première scène du jeu et j'ai setup le moteur graphique PixiJs. En lisant la doc en diagonale j'arrive à afficher les images et les modifier par frame comme je le souhaite. Je n'ai par contre pas encore vu la gestion des sons et des formats acceptés.
Ce moteur a l'air vraiment complet avec des groupes d'asset, une hiérarchie, des masques. Je n'aurai pas besoin d'utiliser ces fonctionnalités car le projet est bien trop petit mais il est possible d'étendre si je le continu par la suite.
Ma prochaine étape sera de tester la gestion des événements et surtout de voir comment fonctionnent les inputs.
J'ai passé du temps à rechercher ou créer des assets. Pour les sons et musiques j'ai ce qu'il me faut. Les graphismes ont bien avancé aussi, je pense garder ces assets pour la version finale même si à la base je voulais juste prototyper.
J'ai vu dans la doc de PixiJs qu'il prend les sons au format mp3, j'essaierai de lui envoyer du wav ou sinon il faudra que je convertisse.
Maintenant que les assets sont prêt je vais pouvoir me conssacrer au code.
En partageant un gif de l'animation de l'écran titre j'ai eu des retours positifs et j'ai pu améliorer l'aniamtion suite à des conseils.
Je n'ai pas eu beaucoup de temps libre, le début de semaine était compliqué, c'est pourquoi je condense 3 jours dans ce paragraphe.
Pour terminer les visuels il me manque des animations qui me prendront du temps, je pense le faire un vendredi soir ou le samedi.
J'ai donc avancé sur le code, il y a la boucle principale, j'ai pu créer les classes et initialiser les valeurs par défaut des entités. Il me manque le système de combat et la scène de récompense.
Faire se projet en javascript m'aide pas mal, grâce à la console je peux bidouiller directement les Objet ou variables et voir le résultat directement à l'écran.
Il me reste 2 jours pour finir le code mais ça devrait aller, la fin de semaine est plus calme. Le samedi je travaillerai le visuel et je posterai le projet le dimanche matin.
Sur ces 2 jours j'ai pu terminer complètement le code. Le jeu est jouable en entier.
Il me manquait 2 ou 3 sprites que j'ai fait vite et ne sont pas très beaux.
Samedi il me restera à faire l'intégration des sons, faire beaucoup d'animation et le menu des règles du jeu. Il est presque complété, si j'ai pas trop de mal à créer les animations je pourrai régler les détails.
C'est un grand soulagement de voir que le jeu est fonctionnel après avoir aligné plusieurs centaines de ligne de code, avoir réfléchi en amont m'a permis d'éviter pas mal de temps de debug et d'intégrer les fonctionnalités en une fois.
C'est la panique !!!
J'ai du faire les animations au plus simple car je n'avais vraiment pas le temps de toutes les faire (j'ai même dû en sacrifier 2 ou 3). J'ai encore une grande marge de progression en graphisme.
J'ai eu un autre gros problème... Le moteur PixiJs ne gère pas le son ! Il existe un plugin mais n'était pas compatible avec ma version de PixiJs. J'ai pris une autre librairie de son, j'ai eu un peu de mal à l'utiliser mais le jeu a du son.
J'ai fait quelques parties, par contre je ne l'ai pas fait testé. J'ai constaté un bug d'affichage qui arrive sur les 3 premiers tours mais je n'ai pas le temps d'investiguer. Je pense que pour le reste ça fonctionnera bien.
J'espère aussi que le son n'est pas trop fort, je l'ai mis à 30% (dans le doute j'ai ajouté un bouton pour mute).
Il ne me reste plus qu'à publier le jeu sur itch.io !
Je suis très satisfait du résultat, le jeu est fonctionnel, j'ai pu faire quelques assets graphiques et tester un gameplay.
Comme la gamejam était sur une semaine (j'ai rejoins avec un jour de retard et pas disponible le dernier jour) je me suis dit que je pouvais trouver le temps de faire quelque chose et j'ai réussis à m'adapter rapidement.
Le moteur de jeu PixiJs est très simple à utiliser et l'interprétation de Javascript rend les tests unitaires faciles.
Mon code est très procédural et peu découpé mais assez clair pour ce projet.
Graphiquement j'ai pu me faire un peu la main et je suis content du rendu. Ça reste très simple, avec peu de détail mais c'est ce qui m'a fait gagné du temps.
D'ailleurs c'est ce qui m'a plu le plus dans ce projet, gagner du temps avec des astuces et sans avoir préparé d'asset. Le thème (Theater of Magic) se prête bien à un écran fixe, tout se passe sur la scène du théâtre.
C'est ce qui m'a permis de limiter le nombre d'asset, d'animation, de génération et surtout de physique (il n'y en a aucune).
Mon idée de base était de me baser sur un gameplay en particulier : 2 adversaires choisissent une action dans un temps imparti, ces 2 actions sont faites en même temps et une combinaison en résulte. C'est une base de gameplay que je travail sur un autre jeu.
J'ai donc pu allier le thème, la scène fixe et ce gameplay avec un genre de Shifumi++ qui évolue. Ça a été très fluide pour tout implémenter.
Pour la rejouabilité je me suis contenté d'ajouter des bonus à l'adversaire à chaque victoire et d'afficher le nombre de mage vaincu pour tenter d'obtenir le meilleur score.
C'était vraiment très fun et j'en tire que du positif. C'était aussi super de voir les projets des autres avancés et échanger (Formamac, Barbulinet, TompsonCode et Antonin), merci à eux pour l'engouement !