LightSpeed Trouble (GameCodeur GameJam#13)
LIGHTSPEED TROUBLE
(by difsod)
Prototype réalisé dans le cadre de la GameCodeur GameJam #13 - "Horizontal Shooter"
Élève (premium pro à vie) de GameCodeur : depuis 2 mois (difsod)
Langage et Framework utilisés : Lua / Pico-8 (mon deuxième projet concret sur cette console)
Code, graphismes et sons : moi-même
Utilisation de librairies et codes externes : non, mais je me suis fortement inspiré de la structure du code du jeu "Poy" de David (GameCodeur), fourni en exemple dans son atelier sur la Pico-8, qui m'a vraiment appris à structurer mes fonctions et mon design pattern.
Temps passé : 37h20, en 21 sessions de travail...
Comment j'ai abordé la contrainte du thème :
J'ai voulu participer à la GameCodeur GameJam précédente, mais je n'ai pas terminé mon jeu dans les temps. Cette fois-ci, je tenais vraiment à participer, et j'ai donc réduis au maximum mes ambitions : je voulais simplement faire une version jouable, avec une présentation, un début, une fin, et la possibilité de gagner ou de perdre.
Du coup mon jeu n'est pas très original (et loin d'être fini), mais il est "présentable". C'était mon but premier : obtenir un premier jet "correct", et si possible un peu distrayant...
L'idée du gameplay et du but du jeu, ensuite, est venue du thème de la GameJam sur les consoles virtuelles (que David nous avait recommandée) : "One Minute". Mon jeu se déroule donc sur une minute (ou moins, si on perd avant). Malheureusement, je pensais que cette Jam se terminait en même temps que celle de GameCodeur, et du coup j'ai loupé la date limite de peu... Tant pis.
Postmortem :
Je continue à découvrir Lua et la Pico-8. J'avais fait connaissance avec mon jeu précédent (sur le thème de Sokoban, que je posterai prochainement sur le forum de GameCodeur).
Je me suis plus concentré sur le code, cette fois, et moins sur les "fioritures".
Le jeu a été conçu pour utiliser la version 60 fps du "_update" de la Pico-8. J'avais prévu d'adapter le code pour une version 30 fps, mais je n'ai pas eu le temps de régler ça au mieux et du coup je ne recommande pas ce "mode" (si vous voulez tester, néanmoins, il suffit de passer la variable "fps60 = true", au tout début de mon code (onglet 1), à "fps60 = false" - le reste est alors géré (mais mal) par le code...). Il faudra que je me penche plus en détail sur ce système par la suite...
Les difficultés : elles sont inhérentes à mon apprentissage du langage, principalement, et j'ai notamment butté longtemps sur la syntaxe et la gestion des index dans les tables, que je n'avais pas bien saisies au premier abord. J'ai beaucoup étudié le code du jeu de David, "Poy", fourni avec l'atelier GameCodeur sur la Pico-8, pour apprendre à structurer mes fonctions et mon design pattern. J'ai d'ailleurs repris en partie sa structure, avec "l'usine" à sprites, et les listes qui gèrent les éléments du jeu. Je n'en suis qu'à mes débuts, mais j'entrevois déjà la puissance de ces systèmes.
Les succès : je suis globalement satisfait du comportement des vaisseaux ennemis, qui correspond bien à ce que j'avais planifié sur papier au départ (même si j'ai pas mal lutté, par moments...). Pour l'instant le jeu comporte trois vagues d'ennemis différentes, mais 4 ont été prévues dès le départ de la conception, et je travaille actuellement sur leur mise en œuvre dans le jeu. Je mettrai d'ailleurs à jour au fur et à mesure, une fois la Jam terminée. Et il faut encore beaucoup de polish et "d'effets spéciaux", que j'ai en tête, mais pas encore eu le temps de coder. A suivre, donc...
Bilan : même si je vois bien que mon code est encore trop brouillon et "lourd", je sens que j'ai déjà progressé par rapport au projet précédent (ma version de Sokoban). J'ai encore des variables qui ne servent à rien (après autres modifications pour "optimiser" le code de départ), et beaucoup de bouts de code répétitifs (il faut que j'améliore la factorisation de tout ça). Le Sokoban m'avait permis d'aborder un peu tous les "outils" de la Pico-8 (code, sprites, animations, sons et musiques), car je voulais essayer d'en apprendre le maximum pour mes débuts avec cette console. Ici je me suis plus concentré sur le code, et la transcription des idées que j'avais posées sur papier. J'ai également encore beaucoup appris, cette fois-ci, et je compte bien continuer dans cette voie, qui m'ouvre nombre de perspectives...
A venir... :
- Finalisation de la gestion de la troisième vague d'ennemis (c'est encore un peu brut, et il faut affiner), et création du dernier type d'ennemis et de son comportement.
- Un écran titre digne de ce nom (avec logo, graphismes et musique).
- De meilleurs bruitages.
- La gestion du score (afin de donner un but complémentaire au jeu, autre que celui de simplement rester en vie 60 secondes).
- L'effet de passage en vitesse lumière qui clôt le jeu en beauté...
- Des effets de particules et des animations sur les sprites (collisions, dommages du vaisseau du joueur...).
- Un meilleur équilibrage de la difficulté, des cadences de tir des ennemis etc., afin que le concept de départ (rester en vie une minute) soit vraiment respecté et attrayant.
- Un menu d'options, pour choisir entre plusieurs niveaux de difficulté, le choix de l'ordre d'apparition des ennemis...
Status | Prototype |
Platforms | HTML5 |
Rating | Rated 5.0 out of 5 stars (1 total ratings) |
Author | difsod |
Genre | Shooter |
Made with | PICO-8 |
Average session | A few seconds |
Languages | French |
Inputs | Keyboard, Gamepad (any) |
Comments
Log in with itch.io to leave a comment.
Bon jeu :) sympa le comportement des ennemis
Merci. :)
j'aime beaucoup !!
Merci. :)
Bon jeu!
Merci. :)