Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
A jam submission

Floor is LavaView game page

Fuyez devant le danger qui vous guette.
Submitted by Asthegor — 14 days, 15 hours before the deadline
Add to collection

Play game

Floor is Lava's itch.io page

Results

CriteriaRankScore*Raw Score
Respect du thème#144.1114.111
Overall#183.6673.667
Note générale#213.2223.222

Ranked from 18 ratings. Score is adjusted from raw score by the median number of ratings per game in the jam.

Pseudo adhérent Premium sur Gamecodeur
Asthegor

Elève Gamecodeur depuis...
Quasiment le début

Langage / Moteur utilisé
Lua/DinaGE (moteur maison)

Temps passé (environ)
20h environ

Décrivez votre expérience (déroulement, difficultés, progrès réalisés, bilan personnel)
*** Déroulement ***
Avec mon toolkit, j'avais déjà une grosse partie du code de prêt :
- un menu principal
- un menu d'options
- un écran pour les crédits (vide)
- un player
- etc.
Cela m'a permis de gagner un temps considérable.
Mais ce qui m'a fait gagner le plus de temps, c'est d'avoir des liens vers des sites de tileset, spritesheets et autres images. Pour moi, le plus difficile est de trouver un décor correspondant au thème.

J'ai voulu que mon jeu soit sur un grand nombre de niveaux (100 pour être précis).
Le joueur a la possibilité de passer par les escaliers ou bien de prendre un ascenseur qui lui permet de monter plusieurs étages. Bien sûr, pour débloquer l'ascenseur, il faut l'activer en effectuant plusieurs tâches/actions.


*** Difficultés rencontrées ***
1) Masque d'affichage
Pour masquer l'affichage comme actuellement, j'ai voulu passer par des shaders. Cela me semblait logique pour l'effet désiré. Mais apprendre comment coder un shader m'aurait pris un temps monstrueux. Et puis, comme un miracle, m'est apparu le "stencil". Je n'ai compris son fonctionnement que bien après l'avoir mis en place pour mon jeu.

2) Déclenchement d'actions à un point de contrôle
Après avoir fait un niveau relativement simple, j'ai décidé d'activer un timer à partir du moment où on quitte une salle. Cela s'est fait en plusieurs étapes : ajout du point de contrôle dans la map (sous forme d'un objet), vérification de la collision du joueur et du point de contrôle pour déclencher l'action.

3) Ouverture des portes
L'ouverture des portes a été un défi technique pour la mise en place de l'action sans casser le code déjà existant. De plus, il a fallu que je trouve un moyen simple de connaître les portes à ouvrir : les propriétés personnalisées des objets! Après plusieurs heures et de nombreux essais/erreurs, j'ai réussi à ouvrir les portes. Cela m'a révélé un petit bug dans l'affichage des objets au sein de ma librairie : les objets sont toujours affichés au dessus des autres layers... Donc on verra toujours les portes...Tant pis !

4) Fermeture des portes
Cela a été encore plus difficile de coder la fermeture. J'ai dû refaire tout le système que j'avais trouvé pour l'ouverture...Sniff...

Hormis le masque d'affichage, une refonte est en cours pour permettre d'ajouter plus facilement des actions.


*** Progrès réalisés ***
J'ai fait de gros progrès dans l'utilisation de Tiled. J'ai découvert des fonctionnalités que je n'aurais pas pu exploiter dans d'autres jeux. Bien qu'il soit gratuit, c'est un outil très puissant et également mis à jour très régulièrement (la dernière version date de mai 2020).

Côté code, j'ai fait des progrès dans l'optimisation des ressources et l'organisation du code. Bien que découpant mon code en fichiers, cela pourrait s'avérer difficile de s'y retrouver (j'ai déjà vu un exemple avec trop de fichiers qui en devient ingérable). Toutefois, j'ai trouvé un compromis qui me permet de mieux regrouper les données similaires.

Le progrès que je trouve le plus significatif est la conception de ma machine à états (fichier "gamestate.lua"). J'avais pourtant suivi des cours dans un DESS spécialisé dans le développement de jeux vidéo mais sans avoir vraiment compris son utilisation. Désormais, et grâce à ce prototype, je sais concevoir et utiliser une machine à états. Petite cerise pour moi, le Load, Update et Draw sont entièrement neutres : ils ne savent pas quel état ils gèrent. Avec ça, je peux rajouter n'importe quel état par une simple ligne comme celle-ci : self.nouvelEtat = require("NomDuFichierDuNouvelEtat"). Bien entendu, le fichier "NomDuFichierDuNouvelEtat" devra contenir les fonctions Load, Update et Draw (même si elles ne contiennent aucun code).


*** Bilan personnel ***
En premier lieu, je n'ai pas pu consacrer assez de temps au développement de ce jeu qui est maintenant plus un prototype qu'un jeu. Ensuite, j'ai apprécié de concevoir ce prototype qui m'a permis de mieux structurer ma façon de coder. Comme nombre de mes projets, j'arrive à plus ou moins les finir mais sans vraiment aller jusqu'au bout de mes idées.

Leave a comment

Log in with itch.io to leave a comment.

Comments

Submitted(+1)

Visuellement, c'est beau, le game play est sympa. J'aurais aime comme dans un autre jeu une minimap avec ce que l'on a découvert parce que je m'y perd.

Sinon tu tiens une bonne base de moteur perso. C'est ce que je fait aussi pour faciliténla mise en place d'un nouveau proto. En ca les games jam sont excellentes pour intégrer  de nouvelle chose.


Je valide :)

Developer

Merci d'avoir testé mon jeu/prototype.

Il y a 2 raisons pour lesquelles je n'ai pas implémenté de mini-map :

  1. Je ne me suis jamais prêté à l'exercice d'un concevoir une ni même réfléchi à la manière de l'intégrer dans un jeu. Ce n'est probablement pas très compliqué.
  2. Tu ne connais pas l'endroit donc je trouvais normal qu'on ne puisse pas se faire une "carte mentale" (la mini-map) des différentes zones parcourues. Et avec de la lave qui se chauffe les fesses, tu n'as pas vraiment le loisir de pouvoir bien réfléchir : il faut juste que tu trouves un escalier. (^_^) 
Developer

Merci infiniment à tous ceux qui ont pris le temps de tester ce modeste jeu/prototype.


Developer

Ceci est la dernière version que je mettrais en ligne de mon jeu/prototype.

Dans cette version, j'y ai inclus quelques sons et une musique d'ambiance.

Le volume peut être modifié dans le menu Options.

Submitted(+1)

Bon travail Asthegor. :)

Un petit effet sonore lorsqu'on active un terminal pour ouvrir une porte aurait aidé un peu la progression, mais c'est une jam donc le temps est compté. :)

J'ai vu dans les commentaires qu'on pouvait courir... si j'avais su en testant !! :p

Bravo !

Developer

Merci d'avoir pris le temps de tester mon jeu.

J'ai tendance à ne mettre les sons qu'une fois le gameplay en place. Et je trouve aussi que c'est important d'avoir certains détails sonorisés (le bruit de l'ordinateur comme tu le mentionne).

Submitted(+1)

Bravo pour ton jeu tu tiens là une bonne base déjà bravo.

Submitted(+1)

c'est du très bon travail, bravo (y)

Developer(+1)

Merci d'avoir pris le temps de tester mon jeu.

Submitted

Bon travail, quelques PNJ en plus et je me serais moins sentis seul mdr

Developer

Merci d'avoir pris le temps de tester mon jeu.

Comme tout le monde s'est déjà enfui, c'est donc un peu normal que tu te sentes seul ! (^_^)

Submitted(+1)

J'aime le concept du jeu mais dommage qu'il n'y ai pas + de choses à faire car je pense que tu as du pas mal taffer dessus, il y'a 3 niveaux pour l'instant ou j'ai loupé des choses ?  

Je m'attendais pas à la fin j'ai bien aimé ^^ 

Bravo pour ta participation :) 

Developer

Merci pour le message d'encouragement. Cela fait vraiment plaisir à lire.

Pour l'instant, je n'ai fait que 2 niveaux et quart : on peut dire que le 3ème n'est vraiment pas fini (^_^)

Je tâcherais de l'améliorer si j'ai du temps cette semaine mais c'est pas vraiment gagné : mon boulot me prend pas mal de temps en ce moment.

J'ai même pensé à faire en sorte que le niveau soit de plus en plus révélé au fur et à mesure qu'on monte dans les niveaux vu qu'on s'habitue à l'obscurité.

Developer

Merci à tous pour vos retours.

Pour éviter que vous vous retrouviez avec un message d'erreur, j'ai rajouté une fin au jeu.

Submitted(+1)

Super boulot ! 

J'ai la même erreur que Mainc en prenant les troisièmes escaliers ! Bon courage pour la suite ! ;)

Submitted

Salut, le jeu est-il prêt à être joué ? il n'y a pas de son, ni musique, en dehors des touches flèches pour se déplacer y a-t-il d'autre touche qui permettent d'accomplir des actions ? J'ai été incapable de sortir de la pièce d'origine, il y a probablement des porte à ouvrir pour continuer...

On voit qu'il y a eu pas mal de travail mais ça semble un jeu encore incomplet.. si c'est le cas laisse moi un message quand ça sera à ton goût, je le re-testerai.

Developer

Le jeu ne sera jamais terminé car la Jam est finie. Il n'y a aucun son ni musique (les options sont trompeuses, je sais).

J'ai également oublié d'indiquer les touches utilisables :

  • Touches fléchées pour se déplacer
  • touche E pour les actions
  • touche Shift (droite ou gauche, les deux fonctionnent) pour courir

Il y a également Ctrl + Alt + D pour activer le mode Debug et Alt + Shift + D pour le désactiver.

En mode Debug, tu peux :

  • arrêter le chrono avec la touche / du pavé numérique (si tu en as un)
  • afficher toute la map avec la touche * du pavé numérique (si tu en as un)

Je les rajoute dans les instructions.

Submitted(+1)

Bon j'ai terminer le jeu!! beau travail et belle finale!

Rien de majeur mais essai de penser à rendre le curseur de la souris invisible lorsqu'on est dans le game play principal. Et les effets sonore et la musique serait un +. Il y en plein de dispo sur le pack de gamecodeur si tu veux pas trop perdre de temps à chercher.

Bonne continuation!

Developer

Merci beaucoup pour ton retour.
J'avais pas pensé à masquer la souris quand on joue... Désolé pour ce tracas. La prochaine version corrigera ce bug.

Je vais voir pour ajouter un écran avant le jeu pour indiquer les touches à utiliser.

J'avoue que le son, c'est ce que je fais toujours en dernier et comme c'est sur une GameJam, il m'arrive de ne pas avoir assez de temps pour en trouver bons ou pas.. Je t'avoue que la prochaine version sera probablement sans son mais sait-on jamais, une petite musique d'ambiance un peu glauque/gothique... (^_^)

Submitted

J'ai réussi à ouvrir une porte sans savoir quelle action en est à l'origine. Le jeu a plus tard rencontré une erreur dans LevelManager ligne 124, il n'a pas trouvé le module Level97.

Bravo pour le travail accompli ;)

Developer

Merci infiniment Mainc d'avoir testé mon prototype.

Cependant, je n'ai pas la moindre idée comment tu as pu te rendre au niveau 97 !!! (0_0)
Normalement, ce n'est pas possible.... Faudra que tu me donnes ton secret de magicien.. Moi-même, je n'ai jamais réussi... (^_^)

Submitted

Je pense que le perso était en train de mourir, je voyais du rouge apparaître puis boum :

Extrait de l'erreur que j'ai conservé au cas où :

DinaGE/Managers/LevelManager.lua:124: module 'game/map/Level97' not found:
no field package.preload['game/map/Level97']
no 'game/map/Level97' in LOVE game directories.
no file 'game/map/Level97' in LOVE paths.
no file '.\game/map/Level97.lua'

C'est toi le magicien pas moi :P

Developer

Merci pour ce retour d'erreur.
Tout était de ma faute. J'avais cru avoir livré la bonne version (celle qui ne permettait jamais de finir le niveau hihihi).
La nouvelle version corrige ce problème en incluant une fin.

Par contre, si tu as rencontré ce problème dans la nouvelle version, merci de me l'indiquer.

Quand ça devient rouge, c'est que la lave est en train de chauffer tes pieds et qu'il faut te dépêcher de monter de niveau. (^_^)