IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Projets Discussion :

[WE-JV10] First Plague


Sujet :

Projets

  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    juillet 2009
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : juillet 2009
    Messages : 381
    Points : 1 292
    Points
    1 292
    Par défaut [WE-JV10] First Plague
    Bonjour Bonsoir Bonne nuit!

    Après quelques heures à chercher l'inspiration puis à enfin commencer à travailler, je vous présente notre projet pour cette année.

    Pour trouver l'inspiration pour coller aux thèmes, je suis notamment allé sur l'article Wikipedia sur le nombre 10, duquel je me suis ensuite vite retrouvé sur celui des 10 plaies d'Égypte.
    J'avoue qu'en combinaison avec le thème "Vous ne devez pas arrêter de bouger pour ne pas mourir", j'ai d'abord pensé à faire un clone de Serious Sam

    Je me suis retrouvé à réfléchir à plusieurs idées de jeux poursuites, basés sur le fait de fuir quelque chose (à voiture, en bus...) pour finalement m'arrêter sur un jeu où, à bord d'un bateau sur le Nil, vous devrez échapper à la 1ère des 10 plaies d'Égypte: le fleuve de sang. Et ce faisant (si les délais me le permettent), vous devrez aussi sauver les gens à pied sur la rive qui veulent aussi y échapper.



    Je vous annonce qu'il y aura pas mal de recyclage dans ce projet vous pouvez déjà voir le même rendu de l'eau que pour mon prototype de jeu d'aventure sous-marine, dont un topic est présent quelque part sur ce forum.

    Biiscuit me fournit une précieuse aide cette année encore, elle a déjà réalisé, entre autres, le bateau ci-dessus.

    Bonne nuit encore et à bientôt,

    Guntha

  2. #2
    Membre éprouvé
    Homme Profil pro
    Programmeur du dimanche
    Inscrit en
    août 2017
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Programmeur du dimanche
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2017
    Messages : 297
    Points : 1 027
    Points
    1 027
    Par défaut
    Bonne jam ! Et que les dieux (égyptiens) soient avec vous !
    Sur Youtube je suis "Le développeur des cavernes"
    https://www.youtube.com/channel/UCSz...bYl_pSNMv_zerQ

    Je suis aussi "Gaming des cavernes" :
    https://www.youtube.com/channel/UC5C...Hdt9ORG6lL0xcw

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    juillet 2009
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : juillet 2009
    Messages : 381
    Points : 1 292
    Points
    1 292
    Par défaut
    Bonjour,

    Le fleuve de sang peut maintenant vous poursuivre et vous rattraper pour vous faire perdre la partie.

    J'ai aussi ajouté de l'inertie dans le déplacement du bateau.

    J'ai perdu un peu de temps à corriger des bugs de rendu, mon eau n'était pas vraiment prête à l'emploi, surtout que j'ai fait quelques changements pour ce jeu (il n'y a pas de réfraction vu qu'on ne voit pas sous l'eau, et je l'ai adaptée pour l'effet de rivière d'une couleur différente qui nous poursuit).
    Pour cet effet, je rends simplement la réflexion 2 fois, une fois avec un ciel rouge et une fois avec un ciel bleu, et je sample l'une ou l'autre selon la position du pixel d'eau dans le monde.
    J'aimerais bien avoir un effet similaire pour tout ce qui est affiché au-dessus de l'eau.


  4. #4
    Rédacteur/Modérateur
    Avatar de SylvainPV
    Profil pro
    Inscrit en
    novembre 2012
    Messages
    3 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2012
    Messages : 3 296
    Points : 9 634
    Points
    9 634
    Par défaut
    Cet effet d'eau est effectivement très sympathique !

    Je ne sais pas s'il est possible de rendre moins rectiligne le fleuve de sang qui se rapproche. Peut-être avec des cercles plutôt qu'un rectangle, si c'est possible ?
    One Web to rule them all

  5. #5
    Membre éprouvé
    Avatar de Gregouar
    Profil pro
    Chercheur en mathématiques
    Inscrit en
    décembre 2007
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur en mathématiques

    Informations forums :
    Inscription : décembre 2007
    Messages : 249
    Points : 903
    Points
    903
    Par défaut
    Ou alors avec un shader qui prendrait en compte la position world x et le bruit utilisé pour l'eau (comme ça en plus ça correspond). Après, il faut que ça reste relativement une ligne pour que ça soit assez clair la distance qu'il y a entre toi et le sang.
    Holyspirit : Hack'n'Slash amateur gratuit !

    www.holyspirit.fr

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    juillet 2009
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : juillet 2009
    Messages : 381
    Points : 1 292
    Points
    1 292
    Par défaut
    Tout ce que dit Gregouar (l'idéal ça serait un effet qui s'intègre bien dans le bruit de l'eau, mais que la limite reste lisible pour le joueur, d'ailleurs c'était aussi mes conclusions sur le chat ^^)

    Mais faire un nouvel effet visuel pendant le week-end ça serait chaud, surtout que j'ai déjà perdu pas mal de temps sur des bugs visuels (qui aurait cru que c'était si galère de mettre proprement des sprites 2D dans un monde 3D, surtout quand on veut des réflexions sur l'eau? J'ai d'ailleurs quelques soucis de blending parce que je ne trie pas mes sprites, mais je vais laisser ça de côté...)

    Pour continuer sur le visuel, aujourd'hui j'ai passé pas mal de temps sur l'effet quand on perd, vous risquez d'avoir plus envie de perdre que de battre votre score pour le voir plus souvent :p


    Les palmiers, les mains et encore plusieurs autres sprites qui ne sont pas encore intégrés sont de Biiscuit, qui est très motivée cette année!

    J'ai aussi ajouté des bouts de décor qui s'enchaînent aléatoirement les uns dans les autres:



    Je les ai faits avec Trenchbroom; comme je l'ai déjà utilisé pour mon jeu d'aventure sous-marine (qui n'a pas été mis à jour depuis un moment :/ ), le gros du boulot était déjà fait, même le gros des collisions, sur lesquelles je suis en ce moment.


    Les cubes bleus sont censés représenter l'emplacement des palmiers :p et les rectangles verts les crocodiles, qui ne sont pas encore intégrés.

    Une fois que j'aurai fini les collisions, je pourrai mieux équilibrer le jeu en réglant bien la vitesse de la vague rouge. J'espère pouvoir ajouter toutes les features que je veux avant dimanche soir, notamment les bonshommes à sauver sur les bords ou les crocodiles qui bloquent le passage. J'ai un peu abandonné l'idée d'un effet visuel de monde "corrompu" autour des parties du fleuve déjà ensanglantées.

    Bonne nuit!

  7. #7
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    juillet 2009
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : juillet 2009
    Messages : 381
    Points : 1 292
    Points
    1 292
    Par défaut
    Bonjour,

    Petite update car je devrais bientôt pouvoir faire une version:
    =>Je n'ai pas pu faire le système de collision que je voulais dans les temps (on ne glisse pas sur les bords, on rebondit dessus, pas forcément vers la bonne direction, ce qui suffit pour jouer)
    =>J'ai ajouté des visages familiers:

    Passer près du rivage pour les sauver et multiplier votre score.

    Il y a maintenant aussi des crocodiles, qui vous font rebondir en arrière quand vous les percutez.

    Je n'ai pas encore bien équilibré l'avance de la rivière de sang.

    À plus tard!

  8. #8
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    juillet 2009
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : juillet 2009
    Messages : 381
    Points : 1 292
    Points
    1 292
    Par défaut
    Première petite version:

    https://lhuillia.iiens.net/wejv10/WEJV10.zip

    J'ai déjà eu le temps de corriger quelques petits détails depuis que j'ai fait ce zip ^^'
    Il n'est pas complet, il manque le Readme, et j'aimerais ajouter un dernier effet visuel en plus.

    Pour info, je mets les exécutables DX12 et OpenGL3.0 en plus de celui qui choisit la bonne API (voir le post sur le sujet :p ) parce que sur une machine Windows 10 que j'ai testé, ce dernier n'arrive pas à initialiser D3D12 mais ne retombe pas sur OpenGL, et je n'ai pas eu le temps de débugger ça.

  9. #9
    Rédacteur/Modérateur
    Avatar de SylvainPV
    Profil pro
    Inscrit en
    novembre 2012
    Messages
    3 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2012
    Messages : 3 296
    Points : 9 634
    Points
    9 634
    Par défaut
    Des crocodiles béliers bien sûr !

    Je vois qu'il est possible d'appliquer des rotations sur le modèle du bateau, puis-je suggérer de le tourner légèrement lors des virages ?
    One Web to rule them all

  10. #10
    Membre éclairé

    Homme Profil pro
    Ingénieur logiciel embarqué
    Inscrit en
    juillet 2002
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur logiciel embarqué
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juillet 2002
    Messages : 337
    Points : 893
    Points
    893
    Par défaut
    Sympa, ma me rappel les bonshommes de "ya le feu"

  11. #11
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    juillet 2009
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : juillet 2009
    Messages : 381
    Points : 1 292
    Points
    1 292
    Par défaut
    Ce SONT les mêmes bonhommes (c'est même le même fichier du modèle, contenant les mêmes animations, qui sont jouées ici Enfin à l'époque de la jam, ils n'étaient pas vraiment animés, j'ai fait ça par la suite...)

    Comme je l'ai dit plus tôt, cette année c'est la jam du recyclage, j'ai essayé de récupérer tout ce qui pouvait me servir, et ça m'a aussi permis de voir ce qui manquait à mon moteur.

    @SylvainPV: c'est ce que je voulais faire à un moment, mais devoir faire la rotation équivalente pour le reflet dans l'eau complique ça surtout que je ne suis pas doué en maths, j'en ai déjà sué pour que les sprites aient une rotation à peu près bonne par rapport à la fois à la caméra et au reflet, ce sera du fignolage pour plus tard
    Ce n'est peut-être pas vraiment compliqué, mais j'ai eu du mal à intégrer tout ce que je voulais, j'ai même coupé certains détails, et puis je veux en finir et ne pas risquer de casser quelque chose, je commence à être lessivé ^^'

    Nouvelle version, probablement définitive pour ce soir:
    https://lhuillia.iiens.net/wejv10/WEJV10.zip

    Cette URL sera peut-être mise à jour avec des versions améliorées par la suite si je suis motivé. Celle de ce week-end restera disponible à cette adresse:
    https://lhuillia.iiens.net/wejv10/WE...am_version.zip

    Au menu des changements:
    =>L'écran avant le début de la partie vous montre votre meilleur score (qui n'est toutefois pas sauvegardé sur le disque)
    =>Le menu pause avec le bouton "Recommencer" s'affiche automatiquement au bout d'un moment après avoir perdu (sans masquer l'animation des mains :p )
    =>Les crocodiles sont en plus haute définition
    =>Quelques tweaks pour que l'ordre d'affichage des sprites et l'utilisation du Z-buffer ne soit pas trop pété, mais c'est du bricolage
    =>Une tentative d'équilibrage de la vitesse de la marée rouge (si vous voguez à fond, elle ne tolère quasiment aucune erreur).
    =>Une petite animation quand on récupère des gens sur les rives, chaque personne est un multiplicateur de score


    Bonne soirée, et à plus tard pour le stream de SylvainPV!

  12. #12
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    juillet 2009
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : juillet 2009
    Messages : 381
    Points : 1 292
    Points
    1 292
    Par défaut
    En re-testant, je me suis aperçu que la vague de sang était vraiment trop intransigeante, je l'ai modifiée pour que le je ait un tout petit peu le droit à l'erreur.
    https://lhuillia.iiens.net/wejv10/WE...am_version.zip

    C'est difficile de trouver un bon réglage pour que les parties soient courtes sans que le jeu soit trop frustrant, tout en faisant en sorte de ne pas pouvoir avoir des stratégies qui permettent de jouer infiniment avec peu d'efforts...

  13. #13
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    juillet 2009
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : juillet 2009
    Messages : 381
    Points : 1 292
    Points
    1 292
    Par défaut
    Désolé, encore une mise à jour (d'un côté j'espérais en avoir fini pour de bon plus tôt, d'un autre je suis content de pouvoir apporter des améliorations qui rendent le jeu plus fun au lieu de travailler jusqu'à la fin sur des bugs décourageants)

    https://lhuillia.iiens.net/wejv10/WE...am_version.zip

    Cette fois-ci j'ai agi sur l'accélération du bateau au lieu de la vitesse de la vague de sang: en-dessous d'une certaine vitesse, le bateau accélère plus vite.
    Avec ça, maintenant quand on se prend un rebond, on a le temps de se rattraper de justesse alors qu'on voit le sang qui commence à passer sous le bateau, ce qui rend le jeu plus grisant.

  14. #14
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    juillet 2009
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : juillet 2009
    Messages : 381
    Points : 1 292
    Points
    1 292
    Par défaut
    Bonjour,

    J'ai fait une petite mise à jour qui répare principalement les critiques qui ont été adressées pendant la jam:
    =>La vague de sang qui est coupée sur une ligne droite: maintenant elle suit l'effet de l'eau (en fait, pendant que je dessine le reflet, j'ajoute un gros quad rouge que je dessine pas dans la "vraie" scène, ça donne un résultat satisfaisant :p)

    =>Le bateau tourne quand le joueur appuie sur les flèches haut et bas.
    C'est là qu'on se rend compte que c'est compliqué de mixer de la 3D avec de la 2D, en voulant se permettre des excentricités comme pouvoir tourner des sprites ou les refléter dans l'eau. En fait je ne tourne pas vraiment le sprite, je tourne les vertices du sprites AVANT de faire les transformations de la projection; et encore même là ce n'est pas vraiment une rotation car je n'ai eu un bon résultat qu'en utilisant un quaternion qui n'était pas normalisé. Je dois aussi tricher sur la profondeur en écrivant, pour tout le sprite, la même profondeur que celle qui est à son point de pivot. Et pour le rendu de la réflexion j'ai galéré aussi pour que le bateau ait bien l'air de couler quand on perd.

    =>J'ai aussi amélioré le système de collision en mettant celui que je voulais mettre depuis le début: maintenant le bateau rebondit en fonction de l'orientation du plan sur lequel il se cogne et pas seulement vers l'arrière.
    Du coup j'ai du rééquilibrer la vitesse de la vague de sang (et elle n'est pas encore bien équilibrée, y a moyen d'exploiter en roulant assez lentement pour voir arriver les virages sans que la vague ne nous rattrape), parce que certaines collisions nous projetaient vers l'avant, même si ça diminuait la vitesse du bateau ça permettait de jouer en appuyant seulement sur la flèche droite :p
    =>Quelques autres améliorations visuelles, il y a notamment moins de stuttering (j'avais choisi d'updater le jeu à un framerate fixe, mais je ne smoothais pas la position du bateau/de la caméra au moment du rendu, du coup visuellement on voyait des frames skippées...), et je dessine les arbres du plus éloigné au plus proche, donc il y a moins de soucis de blending sur leurs contours.

    Voilà, amusez-vous bien =)
    https://lhuillia.iiens.net/wejv10/WEJV10.zip

  15. #15
    Rédacteur/Modérateur
    Avatar de SylvainPV
    Profil pro
    Inscrit en
    novembre 2012
    Messages
    3 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2012
    Messages : 3 296
    Points : 9 634
    Points
    9 634
    Par défaut
    Super ces ajouts, bien joué
    One Web to rule them all

  16. #16
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    juillet 2009
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : juillet 2009
    Messages : 381
    Points : 1 292
    Points
    1 292
    Par défaut
    Bonjour,

    L'un des derniers défauts de la version jam, c'est qu'on avait du mal à évaluer dans quelle zone il fallait aller pour récupérer les bonshommes. Maintenant on peut dessiner les triggers dans TrenchBroom (alors qu'avant on plaçait un point qui représentait le centre de la zone, c'était difficile d'évaluer la zone même dans l'éditeur... J'avais déjà fait de quoi dessiner des triggers pour mon jeu d'aventure sous-marine, mais j'avais oublié comment l'utiliser ^^' et l'API pour le faire n'était pas très pratique)

    J'ai essayé de faire un petit effet sympathique à l'affichage:


    Et puis tant qu'à faire, comme je peux donner la forme que je veux à mes triggers, j'en profite pour les rendre plus arrondis et plus jolis ^^



    Du côté des améliorations moins visibles, je suis actuellement sur le chantier de réduire le nombre de fichiers qui réduisent les chunks. Pendant la jam il y avait un fichier pour tout: un pour le mesh, un pour les collisions, un pour l'emplacement des palmiers, un pour l'emplacement des crocodiles, un pour l'emplacement des bonshommes. Actuellement je suis à 2 fichiers par chunk (un qui contient toutes les données et un autre qui contient les meshes), le but c'est d'en avoir 1 seul pour tous les chunks, que je pourrai flat-loader sans aucun traitement (à part les meshes et les textures, qu'il faut toujours envoyer au GPU ensuite). Le but c'est non seulement d'avoir un chargement le plus rapide possible, mais aussi, comme je fournirai plus tard tout ce qu'il faut pour créer un "niveau", de pouvoir se partager plus facilement les fichiers contenant des niveaux.
    Je sortirai une version quand ce chantier sera fini.

    Ensuite il en restera encore un gros (faire un outil qui associe les chunks "compatibles" entre eux, actuellement c'est hardcodé), et ensuite ce ne sera que du polish et de l'ajout de contenu.

    À bientôt!

  17. #17
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    juillet 2009
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : juillet 2009
    Messages : 381
    Points : 1 292
    Points
    1 292
    Par défaut
    Bonjour!

    Je viens de sortir un nouvelle version avec les 2 améliorations décrites ci-dessus:
    https://lhuillia.iiens.net/wejv10/WEJV10.zip


    (En fait la tâche "tout rassembler dans un fichier flat-loadable" n'est pas complètement terminée, il reste juste les textures du mesh du chunk qui sont séparées).
    Le problème avec FirstPlague.exe qui ne fonctionne pas sur toutes les machines a normalement été réglé (en tout cas, ça fonctionne sur la machine sur laquelle j'avais le problème), j'ai quand même laissé les 2 autres par précaution.

    Niveau gameplay, il reste les collisions avec les crocodiles qui sont désagréables, et puis j'attaquerai sérieusement l'outil de combinaison de chunks. Et puis un outil plus propre pour "compiler" un ensemble de chunks en un niveau.
    Il faudrait aussi que je trie mes sprites et les meshes avec de la transparence pour régler certains soucis de rendu. Et les réflexions côté sang ne sont pas terribles.

    Après tout ça, je ferai sûrement des modifs qui feront que le jeu n'a plus grand chose à voir avec la version jam, donc je mettrai les prochaines versions sur une autre URL. Je trouve notamment que le défilement du décor à toute vitesse pète les yeux, je trouverai donc un moyen de changer la caméra pour rendre ça plus agréable (je suis même tenté de mettre une caméra 3ème personne à l'arrière :p ), et/ou réduire la vitesse du bateau (et donc rendre les niveaux plus accidentés pour rééquilibrer). Peut-être donner l'impression que le bateau navigue sur des vagues et ne glisse pas sur du plat.

    Voilà, amusez-vous bien, et à la prochaine mise à jour!

  18. #18
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    juillet 2009
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : juillet 2009
    Messages : 381
    Points : 1 292
    Points
    1 292
    Par défaut
    Bonjour/Bonsoir!

    Les 3 tâches dont je parle ci-dessus ont été faites:
    =>Améliorer les collisions avec les crocos: maintenant elles sont mieux intégrées et marchent comme les collisions contre le décor
    =>Les sprites et les triggers translucides sont maintenant triés pour que le blending se fasse dans le bon ordre:


    =>L'éditeur, dont j'ai un peu documenté la progression à coups de vidéos:

    Le début du développement de l'éditeur: j'ai juste ajouté la possibilité de déplacer une caméra librement:
    https://streamable.com/z9c1x0

    Première version primitive de l'éditeur, qui permet juste d'assembler 2 chunks côte à côte pour décider s'ils sont compatibles ou non:
    https://streamable.com/9wxmko

    Une UI proche de la version actuelle de l'éditeur, qui permet déjà d'ouvrir/sauvegarder/compiler un niveau:
    https://streamable.com/7ezgx0

    Ici, à peu près toutes les features dont j'ai besoin étaient présentes, avec des features de qualité de vie supplémentaires, comme pouvoir compiler un niveau et y jouer immédiatement après:
    https://streamable.com/n2aa7e

    Ici 2 changements ont été ajoutés: la surface de l'eau fait maintenant partie des chunks (ce qui permettra plus tard d'avoir potentiellement plus de liberté, avec 2 chunks avec la surface de l'eau à différentes hauteurs séparés par une chute d'eau, ou un étang dans le décor avec des vagues moins vives...), et les chunks n'ont plus forcément tous la même longueur
    https://streamable.com/zmsf52

    Finalement j'ai toujours une mésaventure avec FirstPlague.exe: chez la machine de quelqu'un, D3D12 s'initialise bien, mais le jeu crashe à la 1ère frame, et je ne fallback vers OpenGL3 que si c'est l'initialisation qui foire, pas s'il y a un crash en plein milieu :/

    -------------------------------

    Je songe à complètement changer la façon dont le décor fonctionne: actuellement il y a au premier plan une ligne de chunks "normaux", sur lesquels le joueur se déplace, et à l'arrière plan une ligne de chunks "de décor". Ça marche suffisamment bien tant que le jeu se déroule sur une ligne droite, mais j'ai des plans un peu plus ambitieux, où le parcours pourrait partir plus en biais, et avec le système actuel ça serait compliqué d'avoir un rendu correct.
    Je songe donc à me débarrasser du concept de "chunk de décor", et, à la place, sur les chunks normaux ou sur des chunks supplémentaires vides (si la caméra peut voir loin du parcours), pouvoir désigner des "zones de décor", sur lesquelles le jeu décidera de placer des éléments de décor (bâtiments en 3D, ensemble de sprites, foule de bonshommes...) aléatoirement.
    Ça promet d'être un gros chantier, j'aimerais bien pouvoir sortir une version après l'avoir fini.

    Avec ça, je veux aussi rendre le jeu moddable, et faire quelques changements de gameplay comme j'en parle dans le post précédent.

    À bientôt!

  19. #19
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    juillet 2009
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : juillet 2009
    Messages : 381
    Points : 1 292
    Points
    1 292
    Par défaut
    Bonjour,

    J'ai stagné pas mal de temps avant de décider quoi faire avec mon système de décor, j'en ai profité pour ajouter quelques petites choses à mon moteur. Je progresse toujours assez lentement en ce moment.

    D'abord, la capacité de recharger à la volée des assets quand leur fichier change. Ça marche avec les textures, les shaders et les meshes, et c'est relativement facile d'y ajouter le support de formats spécifiques à un jeu. Pour First Plague, ça marche donc avec les fichiers .map, avec un comportement différent selon que c'est un chunk de "parcours" ou de décor.

    J'ai aussi légèrement changé mon système de localisation pour pouvoir flat-loader un fichier de localisation sans aucun autre traitement, alors qu'il y avait un petit peu de traitement avant (détecter tous les caractères uniques pour préparer les fonts, assigner plein de char*). C'était loin d'être un goulot d'étranglement, mais j'ai du être traumatisé par d'anciens projets pros où les textes localisés étaient stockés dans des fichiers XML :p

    ================================

    Pour le système de décor, la première décision que j'ai faite est de finalement caser le jeu sur des tiles. L'ancien système était suffisant pour avoir un tracé qui ne soit pas une ligne droite, mais ça compliquait l'ajout de décor autour. Grâce au fait de forcer les chunks à avoir une taille en tiles, je suis sûr de pouvoir remplir tous les trous dans la map autour du chemin.
    Je fais en sorte de n'ajouter du décor que si l'angle de caméra le nécessite. À chaque frame, je remplis une grille pour savoir quelles tiles sont encore inoccupées, et lesquelles peuvent être vues par la caméra.

    Les cases blanches montrent les tiles inoccupées, les noires les tiles occupées, et celles qui ont aussi du rose les tiles vues par la caméra. Les tiles aux bords d'un chunk peuvent colorées si les tiles contiguës sont encore vides, c'est pour signifier quels chunks voisins seraientt "compatibles" et pourraient y être placés, c'est une capacité que je n'utilise pas encore dans mes assets.

    Ensuite, il m'a fallu définir où les décors en eux-même (ensembles d'arbres, de maisons...) pourraient apparaître (pour qu'ils ne puissent pas chevaucher l'eau ou apparaître sur une pente raide par exemple).
    Je dessine des zones de décor dans TrenchBroom, dont je prends l'une des faces dans le jeu pour définir le polygone où le décor peut apparaître. Pour que l'algo qui va remplir ces zones (que je n'ai pas encore écrit :p ) reste relativement simple, chaque zone doit être composé d'un seul brush, pour que ce soit forcément un polygone convexe.


    Voilà où j'en suis. Actuellement, je suis en train de m'occuper des décors en eux-même (qui seront traités presque comme un 3ème type de chunk), et ensuite je m'occuperais de remplir à la volée les zones de décor avec ces décors.

    À la prochaine, dans moins longtemps j'espère!

Discussions similaires

  1. DB2 Peut-on remplacer le FETCH FIRST par plus performant?
    Par souellet dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/09/2005, 17h07
  2. [css] first caracter ...
    Par SpaceFrog dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 12/07/2005, 14h54
  3. Réponses: 8
    Dernier message: 16/06/2005, 13h58
  4. Camera First Person Shooter
    Par Martin dans le forum OpenGL
    Réponses: 6
    Dernier message: 15/01/2004, 04h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo