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-JV6] Swimming Brick


Sujet :

Projets

  1. #1
    Membre expérimenté
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2009
    Messages
    417
    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 : 417
    Points : 1 452
    Points
    1 452
    Par défaut [WE-JV6] Swimming Brick
    Bonjour!

    Comme le nom du projet l'indique, je suis en train de faire un jeu où on nage et où on pousse des leviers :p


    Il y a des algues qui ondulent bizarrement!


    Il y a un shader bidon quand la caméra passe sous l'eau!


    Il y a des portes qui s'ouvrent!


    http://lhuillia.iiens.net/wejv6/screens/lever.gif
    Il y a des leviers qui ouvrent les portes quand on les pousse!

    Il n'y a pas vraiment de challenge prévu dans ce jeu, le but est d'avancer de salle en salle et d'ouvrir les portes.

    Ce qui doit suivre:
    ->Pouvoir passer d'une salle à une autre

    Ce qui pourrait suivre:
    ->On pourrait collecter des clés qui ouvrent certaines portes à la place d'un levier
    ->Des bancs de poissons qui se baladent
    ->Des collisions, ça pourrait servir

    La nage se contrôle de la même façon que dans les premiers Tomb Raider:
    ->Maintenir Espace pour avancer
    ->Flèches gauche et droite pour tourner
    ->Flèches bas et haut pour monter et descendre
    +Bouton CTRL Gauche pour activer les leviers

  2. #2
    Membre actif
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 97
    Points : 247
    Points
    247
    Par défaut
    Bonne chance !

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2009
    Messages
    417
    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 : 417
    Points : 1 452
    Points
    1 452
    Par défaut
    Merci!

    J'avance, j'ai maintenant les clés (de 4 couleurs différentes, je sais pas si j'aurai le temps de faire un niveau assez long pour toutes les utiliser ), et un début de système de collision simplifié.
    J'ai aussi mis une image avec les boutons utilisés qui reste affichée quelques secondes au lancement, et qui se raffichent si on appuie sur F1.

    J'oubliais quelque chose d'assez important: pour que ces leviers, clés et portes servent à quelque chose, on peut maintenant passer d'une salle à l'autre:


    Avec une petite transition!

    Je ne mets pas de version, les collisions sont encore trop dégueu, et de toute façon le jeu est assez vide (même si je doute qu'il le soit beaucoup moins d'ici la fin de la journée...)

    EDIT: comme je ne pense pas avoir le temps de remplacer la brique qui nage par un perso, j'ai renommé le topic

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2009
    Messages
    417
    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 : 417
    Points : 1 452
    Points
    1 452
    Par défaut
    Ayant perdu pas mal de temps avec les collisions, je suis tout juste en train de remplir les salles (il y en a encore 3 complètement vides, il y a juste de quoi ouvrir les portes et donc finir le jeu).

    Voilà quand même une petite version en attendant:
    http://lhuillia.iiens.net/wejv6/livr...ntha_alpha.zip

    A part les salles vides à remplir , je ne pense pas faire d'autres changements d'ici la fin... J'aurai aimé ajouter quelques features sympa, comme pouvoir utiliser les leviers pour bouger d'autres éléments du décor que les portes

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2009
    Messages
    417
    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 : 417
    Points : 1 452
    Points
    1 452
    Par défaut
    La version peut-être finale (pour ce week-end), avec les 3 dernières salles meublées:

    http://lhuillia.iiens.net/wejv6/livr...JV6_Guntha.zip

    Le placement des clés est un petit peu vicieux :p Il aurait pu l'être encore plus mais avec les bugs de collision qui restent ça aurait été pénible de les chercher, déjà que j'ai quand même mis un passage où on doit se balader à l'aveugle dans un tunnel pour en trouver une... (un conseil: évitez les coins)

    J'ai essayé d'aménager chaque salle différemment. Vu que le jeu n'est pas très palpitant, autant qu'il y a un peu de plaisir de la découverte

    Ce n'est peut-être pas très clair en jouant: le but est d'aller derrière la salle qui se trouve derrière la porte qui a une serrure dorée (ou jaune, c'est selon).

  6. #6
    Membre confirmé Avatar de Fusoy
    Homme Profil pro
    Pas astronaute
    Inscrit en
    Juin 2014
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Pas astronaute

    Informations forums :
    Inscription : Juin 2014
    Messages : 215
    Points : 634
    Points
    634
    Par défaut
    Salut !

    J'ai toujours rêvé de piloter des briques sous marines

    J'aime beaucoup le jeu sinon ! C'est beau, c'est fluide, les contrôles sont un peu étrange, mais ça se laisse jouer. Je n'arrive pas à trouver la clé verte dans la pièce avec les 4 maisons en revanche

    Y'a quelques soucis de collisions, mais ça passe globalement.

    C'est du très beau boulot, bravo !

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2009
    Messages
    417
    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 : 417
    Points : 1 452
    Points
    1 452
    Par défaut
    Bonjour!

    Merci pour le retour Fusoy, ça me fait penser que je n'ai pas pensé à tout dire en postant la version! Ça serait dommage de louper les plus belles salles :p

    Écrasé sous la fatigue hier soir, je n'ai pas réussi à faire une description correcte du jeu en postant la dernière version. Et je vais vous raconter un peu le développement du jeu au passage (chose que je n'ai pas pris le temps de faire pendant le week-end, même sur le chat où je me suis contenté de mentionner chaque nouvelle feature que j'avais ajoutée).

    Comme vous le savez peut-être déjà, vous pouvez vous mouvoir sous l'eau en maintenant la barre d'espace appuyée et changer de direction avec les touches flechées. Quand vous approchez d'un levier, vous pouvez les pousser avec Ctrl gauche. Vous ramassez les clés en passant dessus.

    Le seul challenge du jeu, c'est que les leviers et les clés sont parfois un petit peu cachés. Les portes qui n'ont pas de serrure ont forcément un levier qui les ouvre dans la salle où elles sont (ou dans la salle adjacente). Quant aux portes avec une serrure... les clés, ça se transporte

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

    J'avais envie de faire un jeu où on nage, parce que j'aime bien certains jeux qui ont des séquences sous-marines (notamment les premiers Tomb Raider et Mario 64). Et dans le but peut-être de réutiliser le système pour un jeu plus ambitieux plus tard (réutiliser un système programmé à l'arrache en deux jours, quelle bonne idée :p )

    Je suis reparti du code et des assets que j'avais fait pour le projet de l'année dernière (d'où la présence du "château" de la première salle, que j'ai laissé... Et que j'ai "industrialisé" vers la fin du dev pour remplir plus vite les dernières salles :p )

    Le déplacement du perso, enfin de la brique, s'est fait facilement, mais ce qui manquait (et qui manque toujours) dans mon moteur, c'est un système de collision en 3D. Il y a déjà un système de collision 2D, et encore il ne permet que de détecter les impacts, pas de "glisser" quand on colle à un objet.
    Du coup j'ai commencé un système simplifié (en gros, des AABB), qui marche bien pour les objets isolés mais j'ai eu plus de mal pour quand plusieurs objets sont collés ensemble (donc les longs murs et les petites pièces), ce qui m'a fait perdre pas mal de temps. De plus, contrairement aux apparences, la map n'est pas stockée dans une grille, c'est juste une liste d'objets avec chacun une position, ce qui m'a compliqué la tâche, et je n'avais pas non plus le temps de refactoriser le stockage de la map, donc j'ai du bricoler autour de ça.
    Si j'ai le temps et que je reprends ce projet, c'est le système que je corrigerai en priorité.

    Comme c'est un jeu où il y a peu de challenge, pas très dynamique, et où il y a surtout le plaisir de la découverte et de l'exploration, j'ai complètement laissé tomber la correction des collisions quand il me restait à peu près 4 heures, pour avoir le temps de faire un plan du niveau et de remplir les salles. Au final il y en a 7, certaines moins meublées que d'autres

    Ce qui était à la fois sympa et pas prise de tête à coder, c'était bien sûr les interactions: les leviers, les clés et les portes.
    Chaque levier est associé à une porte (et éventuellement à la porte qui est à la position correspondante dans la pièce adjacente, chose que j'ai ajouté à la fin pour un cas où le levier n'est pas dans la 1ère pièce où on voit la porte correspondante, mais dans la pièce d'à côté. Pour les autres cas, je mettais simplement une porte déjà ouverte dans la pièce adjacente :p).
    Les clés n'ont pas de porte "associée", il faut juste que la couleur de la porte corresponde (ce qui ouvre des possibilités, avec par exemple une porte à choisir parmi trois de la même couleur quand on a 1 seule clé de la même couleur, cas que je n'ai malheureusement pas eu le temps d'utiliser).
    Pour la "cinématique" d'ouverture de porte, c'est juste une position de la caméra qui est settée pendant l'animation d'ouverture de la porte.

  8. #8
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 474
    Points
    11 474
    Billets dans le blog
    11
    Par défaut
    Moi il y a un truc que je ne comprends pas, c'est qu'avant tout premier déplacement tu appuies sur les flèches directionnelles, il se passe des drôles de truc avec la caméra.
    Ca m'a tout confusionné la première fois que j'ai testé.
    Une fois le système de déplacement compris par contre, c'est fluide, le fait de se déplacer dans l'eau donne une bonne impression de liberté, c'est agréable.
    Tu as modifié la caméra de manière à ce que la 3D soit plus lisible et c'est pas mal.

  9. #9
    Membre expérimenté
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2009
    Messages
    417
    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 : 417
    Points : 1 452
    Points
    1 452
    Par défaut
    Salut dragonjoker59, tu pourrais me montrer ces "drôles de trucs avec la caméra"? Sur les 2 machines sur lesquelles j'ai testé, si on appuie sur les flèches directionnelles avant le premier déplacement (ou avant les suivants), la caméra reste immobile, et c'est ce qui est censé se passer...

    Et bravo pour ton moteur et ton TD Un jeu paisible aussi dans son genre!

  10. #10
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 474
    Points
    11 474
    Billets dans le blog
    11
    Par défaut
    Merci!
    Bravo à toi aussi ^^.
    Je te fais une vidéo ce soir en rentrant du boulot.

  11. #11
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 474
    Points
    11 474
    Billets dans le blog
    11
    Par défaut
    Tiens, voilà ce que j'ai:

  12. #12
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 902
    Points : 220 064
    Points
    220 064
    Billets dans le blog
    126
    Par défaut
    Ah, c'est le comportement que j'avais sur Wine et je pensais que cela venait de Wine. Le cube démarre bloqué dans les bordures de la carte, semble t-il.

  13. #13
    Membre expérimenté
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2009
    Messages
    417
    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 : 417
    Points : 1 452
    Points
    1 452
    Par défaut
    Arf, c'est une erreur idiote, la vitesse n'est pas initialisée au démarrage :/ (par contre la brique décélère au fil du temps, mais vu comme la vitesse semble haute dans la vidéo, il faudrait passer plusieurs heures sans rien toucher après le lancement pour que le comportement disparaîsse :p)

    J'ai uploadé une version corrigée à la même adresse, vous pouvez me dire si ça corrige le problème chez vous? (Quoi que comme c'est un oubli d'initialisation, le résultat était aléatoire :p )

  14. #14
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 474
    Points
    11 474
    Billets dans le blog
    11
    Par défaut
    Ouaip, c'est réglé de mon côté ^^

  15. #15
    Membre expérimenté
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2009
    Messages
    417
    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 : 417
    Points : 1 452
    Points
    1 452
    Par défaut
    Bonjour! Bonsoir! Bonne nuit!

    Comme promis, j'ai amélioré le système de collision du jeu, en le changeant complètement. Plus moyen de traverser le plafond d'une pièce en se collant à un coin!
    Le système est beaucoup plus simple: après avoir placé tous les objets (murs, "planchers"...) dans une salle, je génère une grille qui contient pour chaque case la profondeur du sol et le bas et le haut d'un obstacle, s'il y en a un sur la case. C'est limité, mais ça m'a permis de remettre sur la map quelques excentricités que j'avais du virer pendant le week-end (une arche sous laquelle on peut passer dans la première salle...). C'est le système que j'aurais du faire pendant le week-end si j'avais eu la force de réfléchir calmement
    Je vais continuer à l'améliorer, notamment parce que ce nouveau système, tel que je l'ai implémenté, n'appréciera pas les grosses chutes de framerate (je n'ai pas encore trouvé de machine assez vieille pour faire ramer le jeu mais bon). Et aussi pour me permettre de rendre les maps plus riches.
    Le joueur n'est considéré que comme un point, donc on peut percevoir comme un bug le fait qu'il traverse à moitié les murs, mais c'est normal

    Pendant mes tests, j'ai remarqué un gros bug qui était resté: à partir d'une certaine salle, on ne pouvait plus revenir en arrière: la porte permettant de revenir vous remettait dans la salle de laquelle vous veniez de sortir Comme il s'agit de la salle avec la porte à serrure verte, dont la clé est vicieusement cachée dans une des premières salles, ça peut être bloquant.

    D'ailleurs, pour ceux qui étaient bloqués ou qui n'ont pas la patience d'aller au bout, la solution du jeu:
    http://lhuillia.iiens.net/wejv6/screens/plan.png
    C'est ce plan vite dessiné qui m'a permis de terminer mon niveau sans m'embrouiller à la fin du week-end Les plus courageux auront remarqué que l'emplacement de la clé bleue est loin d'être exact

    Et je vous ai menti: les collisions ne sont pas la première chose sur laquelle j'ai travaillé pendant le week-end
    Le jeu était jouable dans la versions DirectX12 de mon moteur, mais l'absence de blending rendait le jeu très moche, et le cube d'eau peut complètement cacher la map selon l'emplacement du joueur dans celle-ci
    J'ai eu un peu de mal à paramétrer le blending dans DirectX12 (à vrai dire, même dans la version OpenGL, c'était sûrement une ligne d'un sample que j'avais laissée sans y réfléchir...) Et je me suis aperçu qu'en plus de ça, j'avais un bug dans le chargement des bitmaps, ce qui rendait presque tous les objets de la map une fois le blending activé: comme DirectX12 ne supporte pas les textures 24 bits, j'ajoute un canal alpha bidon après avoir chargé une bitmap pour pouvoir la mettre dans une texture R8G8B8A8. Et j'avais trouvé le moyen de mettre une valeur foireuse pour cette alpha (Pour ma défense, à force de jouer avec des valeurs entre 0 et 1 pour les couleurs dans les shaders, on a du mal à revenir à l'intervalle 0 - 255 x) )

    Ces tâtonnements m'ont permis d'améliorer la version OpenGL: maintenant, je dessine les objets transparents dans le bon ordre (les algues APRÈS le sol, bizarrement ça ne m'était pas venu à l'esprit pendant le week-end :p ) Ce qui m'a permis de me débarasser d'un contour blanc dégueulasse autour des algues (qui se confondent maintenant presque avec le sol, qui est vert aussi x) ):


    Vous remarquerez que le rendu n'est pas le même dans les deux versions: toutes les textures s'affichent en NEAREST en DirectX12 car ce paramètre se sette dans le RootSignature et non pour chaque texture comme dans OpenGL. Je ne me suis pas encore documenté pour savoir si c'était fortement déconseillé ou non de switcher de RootSignature pendant une frame...

    La version est toujours au même endroit:
    http://lhuillia.iiens.net/wejv6/livr...JV6_Guntha.zip

  16. #16
    Membre expérimenté
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2009
    Messages
    417
    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 : 417
    Points : 1 452
    Points
    1 452
    Par défaut
    Bonsoir!

    Un avant-goût de la suite:




    Vous pouvez cliquer sur les images pour voir un gif de meilleure qualité

    J'ai complètement refait le système de portes pour qu'il puisse permettre n'importe quel déplacement d'objets positionnés n'importe comment, et la transformation fonctionne dans les deux sens. Grosso-modo, j'ai refait le système de hiérarchie de Transforms qu'on retrouve dans Unity ou à peu près tous les autres moteurs qui existent :p
    Ce qui serait bien pour fignoler tout ça, c'est de l'agrémenter d'un système de tweening (pour l'instant, l'interpolation est linéaire entre 2 positions/orientations).
    Et surtout, un éditeur bien ergonomique pour éditer ça: aujourd'hui, tout est paramétré à la main dans le code :p

    J'ai aussi mieux fait la génération du mesh des bords du niveau en dur - avant, c'était un tas de quads positionnés en dur - , maintenant il n'y a plus que 2 meshes: un pour sous l'eau, et un au-dessus de l'eau, avec un placement aléatoire assez naïf des vertex les plus hauts pour donner l'impression qu'on est dans une grotte. La refonte me permet de faire une salle rectangulaire de la taille que je veux.

  17. #17
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 902
    Points : 220 064
    Points
    220 064
    Billets dans le blog
    126
    Par défaut
    Les animations sont superbes !

  18. #18
    Membre averti
    Avatar de marshiell
    Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 338
    Points
    338
    Par défaut
    Ca a l'air génial! et pas trop ambitieux, ce qui est un très bon point. Chapeau pour le développement de ton propre moteur, ça me fait rêver quand je vois ça

    Edit: est ce que tu prévois de gérer les collisions de blocs avec rotation? Si oui, comment?

  19. #19
    Membre expérimenté
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2009
    Messages
    417
    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 : 417
    Points : 1 452
    Points
    1 452
    Par défaut
    Je n'ai pas changé le système de collision depuis, et je ne sais pas encore comment je m'y prendrais pour l'adapter à ces modifs une fois que j'aurais fini, mais j'aimerais que la collision soit assez fidèle quelle que soit la position et l'orientation finale des objets. Pour l'instant, je recalcule la grille de collisions à la fin de l'anim, mais ça ne marche que si les blocs sont alignés avec la grille, et ça ne marche plus dès qu'il y a des rotations. Je ne sais pas si je ferai en sorte que les collisions fonctionnent même pendant que les objets sont en mouvement. Et je ne prévois pas de gérer les collisions entre les blocs.

  20. #20
    Membre expérimenté
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2009
    Messages
    417
    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 : 417
    Points : 1 452
    Points
    1 452
    Par défaut
    Bonjour!

    Et bonne année! Je vous souhaite de bien avancer dans vos projets, et je prédis que vous en présenterez ici beaucoup de bien meilleurs que celui-ci cette année :p

    Aujourd'hui, pas de nouvelle version, même pas de nouvelle image vu que le projet n'a pas évolué visuellement (à part l'ajout d'un petit brouillard sous l'eau...). Ce qui m'a pris beaucoup de temps, c'est de déplacer les data des niveaux, qui étaient dans le code, dans des fichiers (en l'occurrence des json), en faisant au passage de quoi charger/sauvegarder un niveau (obligé si je ne voulais pas les réécrire à la main, et pour pouvoir faire un éditeur plus tard), et j'ai changé de lib de lecture/écriture de json au passage (je suis passé de libjson à rapidjson, le second a une API plus sympa et est beaucoup plus performant).
    Pour compliquer un peu cette tâche, en même temps que je faisais ça, j'ai changé le fonctionnement des leviers et des collectibles: avant, un levier ouvrait une certaine porte, un collectible donnait une certaine clé. Maintenant, quand on interagit avec eux, ils déclenchent un script. J'ai créé un système de script basique (grosso modo, un arbre binaire de pointeurs de fonctions, même pas un langage) qui permet déjà de petites mises en scène.
    Je commence à créer un éditeur basique pour les salles (je commence tout juste à ajouter un picking grossier :p )

    Pour le moment, j'ai complètement désactivé le système de collision, jusqu'à ce que je sache ce dont j'ai vraiment besoin. En tout cas, ce sera plus compliqué que la simple grille que j'avais jusque là.

    J'ai enfin corrigé le problème qui m'empêchait de mélanger des textures avec différents wrap modes et différents filtres dans la version DirectX12: j'avais un static sampler dans mon Root Signature, que je ne peux pas changer entre chaque rendu, je l'ai remplacé par une collection de samplers "dynamiques" avec toutes les combinaisons de paramètres possibles, que je peux binder en même temps que je bind la texture correspondante. Ce n'est peut-être pas la bonne façon de faire, mais pour l'instant ça suffit pour émuler le comportement que j'ai dans la version OpenGL.

    Ce que je prévois pour la suite:
    ->L'éditeur
    ->Décider de ce que je fais avec la forme des salles: est-ce que ça reste un cube généré procéduralement en fonction des dimensions qu'on veut, un mesh plus compliqué généré procéduralement en fonction de la forme de salle qu'on veut, ou un mesh fait à la main?
    ->J'aimerais bien faire un effet de réfraction au fond de l'eau, ça serait plus joli et plus vivant
    ->Repenser le système de collisions

    J'avais aussi un projet que j'avais commencé avant le WEJV6: pouvoir importer des modèles 3D avec des animations squelettales dans mon moteur. Si je m'y remets et que je le finis, ça ouvrirait beaucoup de portes à ce que je pourrais faire dans mes projets. Aux dernières nouvelles, j'avais des soucis avec Assimp, qui avait des soucis pour importer des animations, et encore dans certains formats il n'essaie même pas de les importer (j'avais du passer par le format Collada pour commencer à avoir un résultat...)

Discussions similaires

  1. [Formule] Lever et coucher du soleil
    Par psl dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 21/10/2002, 16h37

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