Elève Premium de Gamecodeur : depuis 30/octobre/2017

-Pseudo Game Codeur : larose -

Lua ./love2d -

Code réalisé entièrement par moi même -

Je n'ai pas utilisé de librairie externe -

Pour la map j'ai utilisé une tilesheet de itch.io et pour les animations du personnage j’ai utilisé le personnage de l'atelier platformer et j'ai redessiné par dessus avec le logiciel pixel éditor. -

Temps passé + de 60 h -Ma toute première game jam

Concernant le thème j'ai pensé à du Shoot ’Em Up avec un vaisseau spatial. Mais je trouvais cela trop simpliste et trop proche de l'atelier le concernant. Je souhaitais créer un concept plus original. Ayant une préférence pour les jeux de plate-forme j'ai décidé de développer un platformer avec un scrolling vertical incluant de la gestion de tirs. J'ai commencé sans trop savoir où j'allais alors, j'ai commencé par afficher une map à partir d'un fichier texte et la faire scroller . Ensuite j'y ai ajouté le personnage et les commandes. Très vite je me suis à nouveau penché sur l'atelier qui parle du CCD (continious collision détection) afin d’en saisir le fonctionnement. Je l'ai compris en regardant le .main de l'atelier. Le fait de savoir gérer ce concept a tout simplifié, et je n'ai eu aucune difficulté pour les collisions, la map, ou bien les shoots. Par contre étant parti sans savoir ce que j'allais faire, je n'avais pas de liste de sprites et le code était brouillon. J'ai donc dû remédier à cela avant de continuer. Par la suite j’ai par la suite géré les tirs et les cases de 2 couleurs différentes, Lors d'une collision entre un tir et une case de couleur identique, je remplace l’ ID de cette case par 0 et supprime le shoot de la liste des sprites.

La map étant plutôt difficile à gérer, j'ai décidé de faire l'atelier tilemap. Ensuite j'ai importé la map depuis le logiciel. J'ai réutilisé la même tile sheet et aussi des images séparées. En regardant le fichier .lua générer j'ai bien compris le fonctionnement et cela m'a permis d'utiliser ses variables complexes pour la taille des tuiles ou bien le firstgid, lesquels ma permis de comprendre comment fonctionne l'association des images séparées de la tilesheet.

Lors de mes tests de jeux un bug de collision sur une case de couleur et Je me suis dit que c'était une bonne idée de game play (C’est comme ça que met venu l’idée de traverser les tuile selon son mode de couleur). En testant le jeu je me suis rendu compte que le scrolling n'était pas adapté à mon plat former, alors j'ai découpé la map par zone. Je me suis aussi aperçu que ce n’était pas évident au premier abord, alors j'ai créée des zones de la plus simple à la plus difficile en y ajoutant des modes petits à petit au personnage. J’apprécie les jeux qui demandent une certaine réflexion, alors j'ai décidé de mettre en place un système de tuile ayant une gravité afin de créer des systèmes de passages actionnés par des tirs selon leur couleur. Pour cela il me fallait aussi bloquer le joueur en cas de manque de réflexion ou d'adresse. j'ai fait en sorte de bloquer le personnage en le faisant tomber mais ce n'était pas suffisant. J'ai donc développer un système de tuile qui peuvent être traversé par le personnage seulement quand il est dans un mode précis. Ce mode ne peut s'obtenir que faisant preuve d’adresse et une fois qu'on passe à un autre mode on le perd. Lors de la création des tirs j'avais permis au personnage de tirer de gauche à droite, en haut, mais aussi en bas. j'ai supprimé ce dernier parce que le faite de pouvoir traverser les tuiles le rendait inutile.

J'aurais aimé avoir eu le temps d'ajouter des ennemis comme des tuiles qui tirent, Savoir comment avoir une meilleure gestion de l'affichage, mieux gérer le delta time et surtout ajouter des menus et une condition de mort. La condition de mort sera ajoutée prochainement, le reste peut être ultérieurement. Cette première game jam ma permis de mettre en pratique à peu près tout ce que j'ai appris jusqu'ici. Cette formation est vraiment formidable, David a le don de pouvoir expliquer des choses complexes de façon simple et de pouvoir proposer une telle formation a un prix accessible. J’ai décidé de devenir programmeur et compte intégrer l'école 42. Merci pour tout et bonne continuation.

Comments

Log in with itch.io to leave a comment.

Entre 18 et 25 FPS lol. Je crois que la limitation est déjà faite.  Merci encore pour l'astuce.

(1 edit)

Bon concept :) dommage que tu es un soucis avec les sauts. J'ai vu que tu travaillais sur Linux. Sur mon ordinateur j'ai windows et Linux. Du coup j'ai testé ton jeu sur les deux systèmes. Moi de mon coté ça va au niveau de la vitesse de ton jeu. J'ai eu aussi des problèmes au niveau de la vitesse de mon jeu quand j'étais en train de le faire. J'ai codé mon jeu sur les deux OS. Sur batterie je tournais vers les 30 FPS et sur alimentation plus de 200 FPS. Même soucis sur les deux OS. Pour résoudre mon problème j'ai utilisé le delta time comme tu as fais et j'ai ajouté un limitateur à 60 FPS. Après moi j'avais le contraire de toi, c'était trop rapide. Pour suivre la vitesse de mon jeu j'ai utilisé cette fonction love.timer.getFPS(). Tu devrais essayer ça sur ton linux, ça te donnera une idée sur la vitesse.

Voici les liens qui m'ont aidé pour mon cas :

Voir la vitesse en FPS : https://love2d.org/wiki/love.timer.getFPS

Limitation FPS si besoin : https://love2d.org/wiki/love.timer.sleep  

merci je vais essayer. Je suis sur la gestion des saut. J'essaie d'associer le concept de vélocité avec le CCF mais avec une limite de saut défini. Et là je bloque.  Je ne m'attends pas à beaucoup de FPS. Déjà je test avec la touche F6 parce que F5 ces mêmes pas la peine. Lundi j'ai un nouveau pc :) Il y a vraiment des gens cool dans cette école. Je comprends mieux le concept du prêt tout peer learning maintenant.

pour ton souci de FPS. Je pense que ces parce que dans tes réglage de ton alimentation tu est en mode éco quand tu est sur batterie. Sur Windows tu peux gérer ça, si tu met le processeur en normal tu ne devrais plus avoir de problème. Par contre moins d'autonomie.

J'ai reposter un nouveau .exe J'ai améliorer pas mal de choses dont les sauts. Par contre impossible de savoir comment ça va rendre sur un autre pc. Si tu test tiens moi au courrant. Merci encore pour tes conseils.

Bon boulot :) Je viens de tester, c'est beaucoup mieux pour les sauts. Encore quelques difficultés avec les sauts mais j'ai l'impression que c'est une histoire de vitesse. J'ai essayé en mode batterie et sur secteur. Sur linux les sauts étaient un peu plus difficile que sur windows sur secteur. Sur windows j'avais du mal à sauter sur les blocs espacés au tout début aussi. J'ai essayé sur le mode batterie où je tourne vers les 30 FPS pour me rapprocher de ta vitesse de jeu et là c'était beaucoup mieux. Les sauts étaient beaucoup plus fluide. J'ai l'impression que tes soucis de saut viennent de là.  Il faudrait que tu vois ça sur un autre ordinateur.  J'ai remarqué aussi quelques soucis au niveau de la collision avec certains blocs (voir capture d'écran 1). Un coup je remontais tout en haut et une autre fois je restais bloqué à mi-chemin.  Je suis resté bloqué à un endroit aussi car le saut était pas assez élevé (voir capture d'écran 2). Peut être un rapport avec les tirs mais j'ai pas réussi à les faire, il faut un mode spécial ? 

Je te mets quelques captures d'écran :




Merci pour l'intention porté a mon jeux. Quand tu est en mode gris tu peut passer a travers les case rouge, bleu et grise. pour l'endroit ou tu est bloqué ces normal il y a une astuce. En faite tu passe  par les caisse rouge de la premiere capture d'écran. ensuite il faut que tu passe a travers la case rouge sur ta droite. tu te retourne, tu passe en mode rouge, tu casse la case rouge pour faire descendre la colonne. Ensuite tu repart sur la droite et tu casse les case pour passer. il y a une caisse en hauteur a casser pour qu'elle tombe et que tu puisse remonter sur ta gauche. la tu casse la case rouge sur ta gauche pour que la colonne redescende et tu peut sauter dessus pour aller chercher le mode bleu. et repartir. c'est là que le jeux commence vraiment :)

 

Le jeux est maintenant directement en ligne. Plus besoin de le télécharger. Je l'ai testé et fini. Si tu met en plein écran et que tes tirs sur la droite ne fonctionne plus, c'est parce que le jeux considere que les tirs sont sorti. il suffit d'attendre que la camara avance  et c'est bon.

Bon concept. Les sauts sont un peu buggés par contre. Continue comme ça!

Merci. J'ai un pc vraiment très lent et je suis sur linux, C'est pas évident de l'adapté. Mais j'ai un nouveau pc prochainement ce qui va me permettre de mieux gérer les export. Sur mon PC les saut fonctionne mieux, mais sont pas térrible non plus. Je pense utilisé le tweening pour améliorer ça.

En fait, pas besoin du tweening. Si j'ai bien compris, la programmation que tu as fait, à chaque saut, la position en y du personnage augmente de la hauteur du saut . Elle diminue ensuite du montant de la gravité.

Ce que je suggère c'est d'ajouter une variable qui serait la vitesse sur l'axe y du personnage. Ainsi à chaque image, la position en y du personnage est modifié en y ajoutant la vélocité en y. La vélocité en y est elle aussi modifié en y ajoutant la gravité. On peut mettre un maximum à ne pas dépasser pour la vélocité pour éviter une trop grande accélération. Lors du saut c'est la vélocité qui diminuera de la force du saut. La force du saut peut être calibrée pour donner un saut à la bonne hauteur. 
Ce que ça devrait faire c'est qu'au lieu de se téléporter subitement, le personnage va accélérer vers le haut pour ralentir grâce à la gravité et retomber.

C'est expliqué plus en détail dans l'atelier Lunar Lander. 
https://www.gamecodeur.fr/liste-ateliers/atelier-lunar-lander-love2d/
Bonne chance!

Merci pour tout. En effet tu a vue juste. Je l'avait fait par vélocité aussi dans certain projet. J'avais d’ailler commencé sur celui ci, mais je comptais utilisé le CCD. et la sa se compliquait. du coup je suis revenu en arrière. Je vais essayer de me remettre dessus. Avec mon pc actuel, sans CCD sa devient vite catastrophique.  Quand j'ai testé mon jeux sur un autre pc, le personnage était plus rapide alors que j'utilise le delta time. Je pense que mon pc tourne au ralenti. Vivement lundi :)

J'ai reposter un nouveau .exe J'ai améliorer pas mal de choses dont les sauts. Par contre impossible de savoir comment ça va rendre sur un autre pc. Si tu test tiens moi au courant. Merci encore pour tes conseils.

C'est déjà beaucoup mieux.

merci.  les saut étais assez simple pour les cases très espacé ? Ou il devrait être un peut plus haut? Je vais remettre du contenu aujourd'hui. Essayer de gérer un vrai full screen.