[Magic Light] - Première Démo / Prototype Jeu
Posté le 23/11/2021 20:37
Hello,
Voici la toute première pré-release publique du petit jeu que je suis en train de coder pour la Graph 90+E (désolé sur les modèles monochrome ca le fait pas) : Magic Light.
Il s'agit d'un petit puzzle game dont le but sera de se balader dans un chateau, mais avec des portes fermées qui ne peuvent s'ouvrir que si les bons détecteurs sont éclairés avec la bonne lumière, chaque porte peut être ouverte en activant 1, 2 ou 3 détecteurs de couleur à la fois.
La lumière de base est blanche (petite boule au centre de l'écran qui peut être sélectionnée avec F2 et déplacée avec les flèches). Quand la lumière traverses les blocs de couleurs, Rouge, Vert, Bleu ou Noir, sa teinte change. A vous de trouver la bonne position de la lumière et des blocs pour ouvrir les portes.
Quand une porte est ouverte, donnant sur un escalier, notre perso peut franchir la porte et changer de pièce.
Comme vous pouvez le constater, c'est une pré-release qui sera amenée à beaucoup bouger, mais je voulais donner un aperçu pour connaitre votre ressenti.
Pour quitter : [EXIT]
Je voudrais implémenter les fonctionnalités suivantes :
- score basé sur le nombre de déplacements
- coffres au trésor avec bonus de point/carte du donjon/aide diverses
- un bloc blanc à "peindre" avec un colorant à collecter au fil de l'aventure (sorte de joker)
- des monstres
- un boss ?!?
Je vous laisse découvrir et me faire vos commentaires ...
A plus
Sly
Fichier joint
Citer : Posté le 23/11/2021 21:20 | #
Pas mal ! Ça en jette avec tous ces effets de couleur. *_*
Sur la calto c'est un peu lent, mais tu auras tout le temps de voir en vrai. Comment est-ce qu'on sait quels détecteurs contrôlent quelle porte ?
Aussi peut-être qu'une minimap pourrait être utile ? J'ai l'impression qu'on aura vite fait de se perdre.
Citer : Posté le 23/11/2021 21:41 | #
Pas mal ! Ça en jette avec tous ces effets de couleur. *_*
Sur la calto c'est un peu lent, mais tu auras tout le temps de voir en vrai. Comment est-ce qu'on sait quels détecteurs contrôlent quelle porte ?
Aussi peut-être qu'une minimap pourrait être utile ? J'ai l'impression qu'on aura vite fait de se perdre.
Pour le moment il faut deviner mais je pense a plusieurs options (peut être selon le niveau):
- inscrire sur la porte (mais un peu trop facile, ok au début mais en avançant dans le jeu il faudra passer à autre chose)
- système d’indices / énigmes (faut que je teste une idée)
- solutions pour quelques portes via découvertes de coffres
Pour la mini map, c’est prevu pour la zone grise de droite.
Citer : Posté le 25/11/2021 22:12 | # | Fichier joint
J'ai juste eu quelques heures pour me remettre sur MagicLight ce début de semaine, mais voici quelques changements.
Interface redessinée, avec cette fois la zone réservée pour la future minimap sur le parchemin
Introduction de la font du jeu.
Au dessus des portes se dessine les combaisons des recepteurs servant à l'ouvrir quand ceux-ci sont actifs (cela disparait quand le recepteur correspondant est désactivé).
Ainsi par exemple la porte Nord a pour combinaison ROUGE+VERT (et c'est tout donc elle est ouverte car les récepteurs sont tous deux actifs).
Par contre pour la porte Ouest, BLEU est une partie de la combinaison, (mais il en manque d'autre(s) donc la porte reste fermée).
Pour la porte Sud, aucun des récepteurs actifs n'intervient dans la combinaison pour ouvrir cette porte.
J'ai oublié de préciser, les récepteurs actifs s'entourent de blanc
Je profite pour nommer cette version officiellement v0.1 Beta
A plus
Sly
Ajouté le 28/11/2021 à 21:38 :
Ca progresse tout gentiment ...
La minimap est à son début (bas du parchemin). Ca fonctionne, mais je vais essayer de faire un truc un peu plus esthetique. La c'est la version bourrin
Désormais je vais devoir travailler sur un éditeur de niveaux car faire chaque niveau à la main, c'est la galère absolue.
+ quelques petites optimisation dans les graphismes
+ implémentation du score.
Mais le cœur du jeu fonctionne bien.
Suite au prochain épisode.
Ciao
Sly
Citer : Posté le 29/11/2021 17:22 | #
Je rejoins LephenixNoir sur le fait que ce projet nous en jette plein les yeux
Même si je n'ai pas de Graph 90, je me réjouis de voir la suite !
Courage
Citer : Posté le 29/11/2021 18:04 | #
Super beau, impressionnant !
Niveau gameplay, j'ai peut être raté un point, mais comment faire pour qu'il ne suffise pas de juste déplacer à tâton la lampe ?
Citer : Posté le 29/11/2021 18:22 | #
Merci Thebigbadboy etNinestars,
Super beau, impressionnant !
Niveau gameplay, j'ai peut être raté un point, mais comment faire pour qu'il ne suffise pas de juste déplacer à tâton la lampe ?
En fait, il faudra trouver la bonne combinaison des positions de la lampe, mais aussi des blocs pour permettre l'ouverture de telle ou telle porte.
Ici les niveaux sont relativement simples et il peut y avoir diverses positions qui fonctionnent, mais une fois le jeu terminé, il y aura des niveaux où il faudra bien réfléchir pour trouver la bonne position pour chacun des éléments (je vais aussi très certainement implémenter quelques obstacles histoire de corser encore un peu plus).
On peu aussi ruser pour mettre cote à cote des récepteurs avec des couleurs différentes, forçant le joueur à forcement trouver les bons blocs à mettre au bon endroit. Il faut savoir que chaque récepteur n'est activable que par sa propre couleur, si le capteur vert est illuminé par de la lumière jaune par exemple, il n'est pas actif.
Il y a moyen de ne pas juste déplacer la lampe, soit rassuré Ca serait beaucoup trop simple.
Ajouté le 29/11/2021 à 20:52 :
Une nouvelle fonction vient d'être implémentée afin de corser un peu le gameplay : les blocs non mobiles et qui bloquent la lumière :
On voit sur la capture d'écran divers blocs décoratifs sur la partie gauche de l'écran et dont la fonction est d'empêcher le mouvement ou le positionnement de la lumière des blocs transparents et de bloquer le passage de toute lumière.
Vous pouvez aussi voir désormais les coffres bonus qui contiendront divers trésors ou diverses aides.
Ciao
Sly
Citer : Posté le 29/11/2021 20:58 | #
Excellent ! Je suis en train de penser que c'est un chouille dur à lire par moments, est-ce que tu as envisagé de garder des bitmaps légers pour chaque couleur pour t'assurer que tu ne fais pas ton blending RGBA 2 fois pour la même couleur et le même pixel ?
Citer : Posté le 29/11/2021 21:38 | #
Excellent ! Je suis en train de penser que c'est un chouille dur à lire par moments, est-ce que tu as envisagé de garder des bitmaps légers pour chaque couleur pour t'assurer que tu ne fais pas ton blending RGBA 2 fois pour la même couleur et le même pixel ?
En fait le niveau est un niveau de test donc j'ai tout mis dedans pour tester le moteur, mais c'est vrai qu'il devient un peu illisible. Le jeu final sera moins cafouillis. En fait, la seule utilisation du canal alpha vient des rayons lumineux, projetés (via raycasting), le reste n'utilise pas d'alpha du tout mais des dimage / dsubimage.
Ajouté le 02/12/2021 à 22:02 :
Le projet avance bien, plein de choses ont évoluées ces derniers temps :
- jusqu'à présent j'étais sur une version vraiment "proto" du moteur où tout était en allocation statique avec des #define dans tous les sens, désormais on passe en allocation dynamique et les niveaux pourront contenir pas mal de trucs variés et être vraiment très différents les uns des autres.
- J'ai implémenté des obstacles aux déplacements du joueur, de la lumière et des blocs de teinte selon 2 types :
# ceux qui bloquent la lumière (Opaques) qui donc peuvent servir à cacher une zone
# ceux qui ne bloquent pas la lumière (par exemple zone d'eau au sol) qui sont juste présent pour limiter/complexifier les puzzles
- La taille de la carte peut changer (avant forcément 13x11 cellules), pour faire des couloirs, des salles carrées/rectangles, en long/en large ...
- Visuellement la source de lumière "clignotte", enfin le terme exact serait "oscille en luminosité", afin d'animer un peu le tableau.
- Les coffres bonus sont affichés mais ne sont pas encore actifs, ce sera pour la prochaine version.
- Les murs peuvent avoir diverses teintes (on la change avec le niveau).
Il reste deux ou trois petit trucs à mettre en place, mais a priori le plus complexe est derrière moi... sauf faire un éditeur de niveaux "propre", car c'est maintenant un autre gros chantier à lancer.
Stay tuned
Ciao
Sly
Citer : Posté le 03/12/2021 07:17 | #
Ça avance bien tout ça !
J'espère que tu as de bonnes idées pour design tes niveaux, ça s'annonce complexe
Pour le level design tu peux utiliser Tiled d'ailleurs, c'est un outil gratuit et open-source qui est un des (le ?) meilleur outil dans le domaine.
J'ai un peu peur que sur calto le jaune et le vert soient confus pour moi à cause de mon daltonisme, je te redis ça dès que je l'aurai testé.
Citer : Posté le 03/12/2021 07:44 | #
Ça avance bien tout ça !
J'espère que tu as de bonnes idées pour design tes niveaux, ça s'annonce complexe
J'ai en effet quelques idées, mais un des but est d'ouvrir le moteur de jeu à d'autres contributeurs par la suite, c'est toujours sympa de créer une communauté.
Pour le level design tu peux utiliser Tiled d'ailleurs, c'est un outil gratuit et open-source qui est un des (le ?) meilleur outil dans le domaine.
Je connaissais pas, merci. Je vais regarder le logiciel pour voir si je peux l'utiliser comme base et greffer mes spécificités dessus.
J'ai un peu peur que sur calto le jaune et le vert soient confus pour moi à cause de mon daltonisme, je te redis ça dès que je l'aurai testé.
En fait sur calto, je n'ai pas de problème entre le vert et le jaune, mais c'est plutôt entre le blanc et le jaune pour les indicateurs au dessus des portes. Par contre effectivement, si tu as un daltonisme, cela risque d'être un peu dur pour toi. Donne moi ton retour, je pourrais implémenter une fonction d'aide spécifique.
A plus et merci pour ton retour Massena.
Ciao
Sly
Ajouté le 04/12/2021 à 17:52 :
Faut bien travailler un peu aussi sur l'interface, pour faire que le jeu sois un minimum sympa à utiliser ...
Et voici à priori à quoi ressemblera le "level 0", point de départ du jeu, niveau ultra facile
A plus
Sly
Ajouté le 09/12/2021 à 10:32 :
Lephé,
Pendant que tu nous concoctes une API d'interaction avec les entrées/sorties dans un fichier, je code l'éditeur de niveaux pour Magic Light :
Dès que tu as un fscanf ou un truc pour lire de manière "structurée" un char/int, je prends pour tester.
Ca va me servir ...
Ciao
Sly
Citer : Posté le 09/12/2021 13:38 | #
T'es pas obligé d'attendre jusque-là, tu peux toujours charger le fichier en RAM et utiliser strtol() et compagnie qui sont déjà codés.
Citer : Posté le 09/12/2021 13:54 | #
Oui c'est vrai, mais pour être honnête comme je commence à faire le portage sur Nspire, si je pouvais avoir un truc le plus commun possible pour gérer les fichiers ce serait cool
J'avoue que c'est la fainéantise qui parle
Citer : Posté le 09/12/2021 15:47 | #
Ah oui c'est vrai que tu programmes aussi sur Nspire en même temps ! T'as bien raison d'être exigeant le standard doit être disponible. Il y aura juste un petit poil de délai
Sinon bonne nouvelle pour le debuggage je pense, en même temps que je finalise l'API Unix je suis en train de regarder quoi faire avec stdin/stdout/stderr et je me débrouillerai dans tous les cas pour qu'on puisse coder un pseudo-terminal et faire afficher les printf() à l'écran. Donc tu auras cette option-là aussi
Citer : Posté le 09/12/2021 16:23 | #
Salut, je trouve que ce projet est excellent, est-ce une adaptation d'un concept de jeu existant, où alors est-ce une idée originale de toi @Slyvtt ?
Y'a clairement un truc à faire ! Pousse le jusqu'au bout
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Citer : Posté le 09/12/2021 18:19 | #
Salut, je trouve que ce projet est excellent, est-ce une adaptation d'un concept de jeu existant, où alors est-ce une idée originale de toi @Slyvtt ?
Y'a clairement un truc à faire ! Pousse le jusqu'au bout
Merci, ça fait plaisir de voir que le concept plait.
En fait c'est une idée originale que j'ai eu lorsque le concours "Glacial" est tombé, mais hélas j'avais vraiment pas de temps pour faire un programme dans le délai imparti, j'ai donc juste fait un mini concept game rapidos (disons la v0.05 pour voir ce que ça pouvait donner)
L'idée vient de ce que l'on peut faire avec de la glace (concept du concours à la base, être dans le thème glacial), et je me suis rappelé d'un reportage vu il y a pas trop longtemps à la TV où des plongeurs nageaient sous la banquise et la lumière était bleutée car une partie du spectre était absorbé par la couche de glace. Banco !! voici l'idée de base à développer.
Critor, sur TI-Planète, ma deuxième crèmerie :D, émet l'hypothèse que le donjon vient des concours Alrys et SynchoDonjon, mais je n'ai pas poussé mon introspection aussi loin, disons que c'est la première chose qui m'est venu en tête pour le lieu du jeu
Ajouté le 09/12/2021 à 18:42 :
Ah oui c'est vrai que tu programmes aussi sur Nspire en même temps ! T'as bien raison d'être exigeant le standard doit être disponible. Il y aura juste un petit poil de délai
C'est vrai que l'implémentation la plus proche possible du standard est important. Par exemple, si tu jettes un oeil là :
https://tiplanet.org/forum/viewtopic.php?f=20&t=24630&start=40
et là :
https://tiplanet.org/forum/viewtopic.php?f=20&t=25060
tu peux voir que le fait d'avoir sur la nSpire à la fois la STL et la lib graphique SDL permet au prix d'un effort minimal de créer des choses très proches sur deux architectures très différentes (nSpire et PC) avec le même code. Ici dans ce cas seuls trois parties sont hardware dépendant (gestion souris & clavier + rendu graphique de base pour avoir une version sans SDL), tout le reste du code est commun.
Sinon bonne nouvelle pour le debuggage je pense, en même temps que je finalise l'API Unix je suis en train de regarder quoi faire avec stdin/stdout/stderr et je me débrouillerai dans tous les cas pour qu'on puisse coder un pseudo-terminal et faire afficher les printf() à l'écran. Donc tu auras cette option-là aussi
Ca c'est cool aussi, si on peut avoir un combo de touche pour switcher l'affichage en live entre l'écran "normal" et un affichage de la sortie, ca c'est le rêve (du genre un ALPHA+SHIFT+F1 à F6, un peu à la méthode linux )
Citer : Posté le 09/12/2021 18:58 | #
Aha oui le fameux toolkit graphique ! C'est une très belle affaire. En effet utiliser des APIs standardisées est vraiment important pour la portabilité. On a un peu de retard de ce côté-là c'est sûr, mais j'ai l'intention de pousser dans cette direction. On peut vite faire des choses pétées
Ça ce sera à l'add-in de gérer - en gros gint, en tant que noyau, te permettra juste de réouvrir stdin/stdout/stderr avec dup2() (ou freopen()) et d'exécuter le code de ton souhait chaque fois que des données arrivent dans stdout/stderr.
Ensuite, tu peux brancher dessus un affichage à l'écran par-dessus ton jeu, ou un écran indépendant, ou logger dans un fichier, à loisir. Implémenter une petite lib avec un shell qui "prend le contrôle" de l'écran quand un message est envoyé serait possible, mais dans une boucle de jeu sans coopération de la part de l'add-in cet écran se ferait effacer après un frame, ce qui est clairement pas idéal. Je ne crois pas qu'il y ait de comportement par défaut vraiment bon pour tout le monde, donc je préfère m'en tenir à vous laisser fournir la méthode d'affichage.
En tous cas gint fournit déjà quelques fonctions pour qu'afficher du texte multiligne à l'écran se passe bien, donc ça sera jamais trop loin.
Citer : Posté le 09/12/2021 21:26 | #
Ou est-ce que je peux trouver l'add-in pour le tester?
Citer : Posté le 09/12/2021 21:29 | #
En fichier joint du post
Citer : Posté le 09/12/2021 21:30 | #
Ou sur la page du programme (je ne sais pas lequel est le plus à jour).
Citer : Posté le 09/12/2021 22:35 | #
Ou sur la page du programme (je ne sais pas lequel est le plus à jour).
C’est dans les téléchargements le plus a jour
Ajouté le 10/12/2021 à 07:49 :
Aha oui le fameux toolkit graphique ! C'est une très belle affaire. En effet utiliser des APIs standardisées est vraiment important pour la portabilité. On a un peu de retard de ce côté-là c'est sûr, mais j'ai l'intention de pousser dans cette direction. On peut vite faire des choses pétées
Ce que je peux te proposer, c'est de lancer un appel à contribution(s), peut être essayer dans un premier temps de lister ce qu'on aimerait avoir de disponible comme librairies/fonctions, puis prioriser cette liste (car certaines briques de base seront à développer avant les briques de plus haut niveau).
Chacun pouvant ensuite essayer d'aider pour participer à l'effort. Je pense qu'il faudrait un superviseur pour checker que tout s'imbrique bien / soit cohérent (on va pas se mentir, se serait toi ;E )
Perso, je voudrais bien aider, mais je sais pas forcément quoi faire en fonction de mes compétences (par exemple en gestion hardware je suis une bille). Mais il y a certainement des items que je pourrais gérer/prendre à ma charge.