ECO
> pensez à télécharger le moteur ECO
> le fichier d'erreur se trouve dans release/bin
> mvt caméra = pavé numérique
L'interface
version 12/2024
Le mini inventaire a été supprimé (il est dans script dialogue)
​
version 06/2024.
Vous trouverez à peu près tout ce qu'il faut pour créer l'interface dans un jeu, et plus :
Label, image (animées), bouton, radio-bouton, check-bouton, liste-bouton (on fait défiler le texte du bouton avec la molette, selon une liste établie) ; les listes, simples, multi-colonne, avec images ; levelBox (vie, mana, ... ) ; progress et progress circulaire ; et même un inventaire simple pour montrer la méthode qui lie un objet à un personnage.
téléchargez >>
Les personnages et leurs objets
J'ai appris à faire un inventaire en donnant aux personnages une liste de pointeurs sur les objets. Cette façon de faire est très complexe, il faut jongler avec des pointeurs, les libérer, s'assurer de ne pas faire de doublon.
​
Voici ma façon de faire, autrement plus simple :
1) À chaque personnage est associé un code (un identificateur). Ce code n'est plus un nombre mais une chaîne de caractères : c'est plus simple de savoir que votre personnage « barbare » a un code « barbare » plutôt que la valeur 118 ! Attention toutefois à ne pas le confondre avec son nom !
​
2) À chaque objet est associé un code, une chaîne de caractères, à l'identique d'avec les personnages. Cela permet de savoir que « epee_00 » et « epee_01 » ne sont pas la même, même si elles ont le même objet 3D. Cela permet aussi de simplifier la sauvegarde et les recherches dans le catalogue.
​
3) Surtout, l'objet possède une variable « m_conteneur » ! Ce conteneur est tout simplement, soit « null », soit le code du personnage, ou de l'objet le contenant (ex : un coffre) !
Ainsi, si le code est « null » c'est que l'objet est disponible (sinon il est dans le sac du perso, sur lui, ou dans le coffre). On peut donc l'afficher dans la méthode draw() :
if (m_conteneur) != « null » return ;
… affichage
​
Pour attribuer un objet à un personnage ou un coffre, il suffit d'attribuer son code :
setConteneur(« barbare ») ;
​
Pour le libérer :
setConteneur(« null ») ;
La scène de base
téléchargez >>
version 12/2024.
Petit bug sur le perso : j'avais bloqué l'affichage du casque sur la tête du squelette (dans la fonction draw, la boucle commençait à 1).
J'ai rajouté la sélection par picking ray sur les palmiers, pour monter la sélection d'un mesh en mode multi (où l'on voit que l'utilisation de .obj pour les mesh statiques est plus simple ! ).
​
​
Affichée en defered shader, avec un loader GLTF chargeant les persos animés (les animations par frame ne sont pas encore présentes).
* Plusieurs effets de plan d'eau sont montrés : lac de basse à haute qualité ; mer basse qualité.
* Les effets de post-processing ont été revus : antialiasing, pluie, brouillard et neige. (> il manque encore l'effet pluie par particules)
1ere île :
* On peut lancer les animations du squelette et l'équiper (casque, épée, bouclier).
* Le barbare affiche des états, gelé, sonné, en feu.
* La fontaine montre un effet particule jet d'eau, possède un détecteur pour lancer le son quand on l'approche ; sous le jet d'eau il y a un effet simple d'onde.
* Le bassin montre un effet de pluie sur un plan d'eau.
* Tdrapeau devient Tflag et est plus simple à comprendre et à mettre en place.
2eme île :
* Les palmiers ne sont qu'un seul objet, dupliqués avec le mode multi.
* Therbe devient Tgrass_map et a été améliorée (Le bug de détection de sol dans OCollision a été corrigé).
3eme île :
* Les mécanismes obj sont mis dans une classe dédiée, Tmesh_obj, pour leur facilité d'emploi. Les trois fichiers txt, obj et mtl, sont réunis dans un seul (voir le texte d'info dans le répertoire « donnees/ »).
* La torche montre un effet particule feu, ainsi qu'un point lumineux.
* Sur le mur, vous voyez un billboard pour un simple effet de flamme.
* le moulin montre un cône de lumière.
Faites jouer l'heure d'affichage et retrouvez la lune.
De profondis
version 06/2024.
Ce programme illustre un inventaire sophistiqué, plus quête, plus compétences des personnages, à la manière du "donjon de Naheulbeuk".
Il est structuré avec des modules, permettant de faire une introduction, un éventuel module éditeur, et le module de jeu.
​
Le barbare peut se déplacer dans l'étage en cliquant sur un point, avec un chemin, (visualisez le fichier blender de l'étage), il suit alors une route Nurb. À vous de faire suivre ses compagnons !
Vous pourrez comprendre la façon dont sont illuminées les différentes zones, ouvrir les portes, vérifier que le coffre ne peut pas s'ouvrir avant la porte.
Avec f1 vous lancerez le combat, enfin, surtout le mécanisme du combat. Il faut encore faire les animations, intégrer les bonus et la magie, les fioles de soins à la ceinture, la tactique...
Il doit rester encore des bugs, à vous de le finir !
téléchargez >>
Mossy
version 06/2024.
Ce programme montre la façon de faire un jeu 2d-3d, et surtout une "intelligence artificielle" simple.
Vous verrez l'aide s'afficher au bon moment, le personnage énigmatique en arrière-plan se déplacer.
Le deuxième niveau n'est là que pour montrer comment un personnage peut rester sur une plate-forme bougeant horizontalement.
téléchargez >>
Script et dialogue
version 12/2024.
Présente un ensemble presque complet d'instructions pour faire des scènes dans un jeu (à vous d'imaginer les autres ! )
Deux énigmes ont été ajoutées pour montrer une façon de faire ce genre de chose.
Le mini inventaire a été déplacé ici, ce qui permet au barbare de ramasser des objets durant la phase de script-dialogue.
J'ai ajouté un choix de langage.
téléchargez >>
Invader
version 11-2024
C'est ici l'occasion de revisiter les anciens jeux, d'apprendre à programmer, de se perfectionner.
Pas de points vies ici, mais une perte constante d'énergie.
Reprenez ce jeux et améliorez-le !
téléchargez >>