[WIP] Sheep ( un mouton pas si stupide)
Re: [WIP] Sheep ( un mouton pas si stupide)
Merci Deceleris, ça fait super plaisir!!
Alesk, , j'y pensais justement à mettre de la couleur, mais j'ai pas encore la marche à suivre bien définie( vertex color, ou mat en quantité, ou 2eme texture damier pour colorer avec les UV2..)
Je vois qu'on est sur la même longueur d'onde, dès le début j'ai en tête des bloc avec un coin biseautés qui dévieraient notre bon petit Sheep. ^^
Emile, , non en effet ça fait pas si gros que ça, je suis a 29Mo tout compris, et il n'y a vraiment pas grand chose dans ma scène. lol
J'ai tenté le fait de s’arrêter sur un interrupteur, le soucis c'est que t'es pas obligé de l'actionner a chaque fois, des fois faut aller en faire d'autre avant de revenir sur un premier.
J'ai rajouter un autre type d'interrupteur pour coller un peu a l'esprit "Sheep se fracasse la tête" : des inter ou il faut foncer dedans. ^^. il faut appuyer sur espace quelques cases avant d'arriver sur l'inter pour que Sheep charge et prenne de la vitesse. si on appui trop tôt, il ralenti avant d'atteindre l'inter et il ne se déclenche pas, de même si appui trop tard, il a pas pris assez d'élan et ne tape pas assez fort. ^^
Download "Sheep, un mouton pas si stupide" ( le lien est le même partout si jamais)
Alesk, , j'y pensais justement à mettre de la couleur, mais j'ai pas encore la marche à suivre bien définie( vertex color, ou mat en quantité, ou 2eme texture damier pour colorer avec les UV2..)
Je vois qu'on est sur la même longueur d'onde, dès le début j'ai en tête des bloc avec un coin biseautés qui dévieraient notre bon petit Sheep. ^^
Emile, , non en effet ça fait pas si gros que ça, je suis a 29Mo tout compris, et il n'y a vraiment pas grand chose dans ma scène. lol
J'ai tenté le fait de s’arrêter sur un interrupteur, le soucis c'est que t'es pas obligé de l'actionner a chaque fois, des fois faut aller en faire d'autre avant de revenir sur un premier.
J'ai rajouter un autre type d'interrupteur pour coller un peu a l'esprit "Sheep se fracasse la tête" : des inter ou il faut foncer dedans. ^^. il faut appuyer sur espace quelques cases avant d'arriver sur l'inter pour que Sheep charge et prenne de la vitesse. si on appui trop tôt, il ralenti avant d'atteindre l'inter et il ne se déclenche pas, de même si appui trop tard, il a pas pris assez d'élan et ne tape pas assez fort. ^^
Download "Sheep, un mouton pas si stupide" ( le lien est le même partout si jamais)
______________________________________________________________
\_______________________ Impossible is nothing _______________________/
Re: [WIP] Sheep ( un mouton pas si stupide)
Bon encore une fois pas fait grand chose, mais un soucis dans le déplacement de Sheep.
En fait j'ai un Vector3 target qui est la position voulue de sheep, qui passe de case en case avec un délai quan on fait un déplacement. Et Sheep suit ce target en continue ( Update) avec un Vector3.SmoothDamp.
C'est la velocity du SmoothDamp dont je me sert pour savoir si Sheep va assez vite pour actionner un interrupteur mur hors cette valeur change en fonction du frameRate (remarqué en changeant de Vsync), pour un même déplacement.
j'ai essayé de jouer avec les Time.deltaTime etc, rien y fait jamais la même valeur.
Il va donc falloir je revoie le principe de déplacement je crois..
Sinon le principe de la barre espace pour faire foncer Sheep ne me plaisait pas trop, j'ai modifier en devant appuyer de nouveau sur la même direction. Par exemple vous le lancé a droite, il faut appuyer de nouveau sur droite pour le faire foncer.
C'est plus intuitif je trouve, non
J'ai aussi de nouvelles idées que je vais tenter de mettre en place :
- les ascenseurs : jusqu'ici, Sheep marche au sol, ce qui est normal! ^^ , mais pourquoi pas ajouter un étage en le faisant marcher sur les murs, en devant passer d'un étage a l'autre via ascenseurs ( et pourquoi pas même sous l'eau ^^)
- des passages secrets : des murs ou arbre dans lesquels il pourrait passer.
- des des tunnels : des cases appairées 2 par deux. il saute dans une pour ressortir de l'autre.
Je vais encore méditer un peu la dessus, en attendant d'avoir j'ai votre avis sur ces idées.
Download "Sheep, un mouton pas si stupide" (modification touches)
En fait j'ai un Vector3 target qui est la position voulue de sheep, qui passe de case en case avec un délai quan on fait un déplacement. Et Sheep suit ce target en continue ( Update) avec un Vector3.SmoothDamp.
C'est la velocity du SmoothDamp dont je me sert pour savoir si Sheep va assez vite pour actionner un interrupteur mur hors cette valeur change en fonction du frameRate (remarqué en changeant de Vsync), pour un même déplacement.
j'ai essayé de jouer avec les Time.deltaTime etc, rien y fait jamais la même valeur.
Il va donc falloir je revoie le principe de déplacement je crois..
Sinon le principe de la barre espace pour faire foncer Sheep ne me plaisait pas trop, j'ai modifier en devant appuyer de nouveau sur la même direction. Par exemple vous le lancé a droite, il faut appuyer de nouveau sur droite pour le faire foncer.
C'est plus intuitif je trouve, non
J'ai aussi de nouvelles idées que je vais tenter de mettre en place :
- les ascenseurs : jusqu'ici, Sheep marche au sol, ce qui est normal! ^^ , mais pourquoi pas ajouter un étage en le faisant marcher sur les murs, en devant passer d'un étage a l'autre via ascenseurs ( et pourquoi pas même sous l'eau ^^)
- des passages secrets : des murs ou arbre dans lesquels il pourrait passer.
- des des tunnels : des cases appairées 2 par deux. il saute dans une pour ressortir de l'autre.
Je vais encore méditer un peu la dessus, en attendant d'avoir j'ai votre avis sur ces idées.
Download "Sheep, un mouton pas si stupide" (modification touches)
______________________________________________________________
\_______________________ Impossible is nothing _______________________/
Re: [WIP] Sheep ( un mouton pas si stupide)
Tu pourrais plutôt calculer sa vitesse de déplacement en temps réel, un peu comme on calcule un framerate, en faisant une moyenne sur les dernières millisecondes écoulées.djulio74 a écrit : ↑24 Oct 2018 08:07En fait j'ai un Vector3 target qui est la position voulue de sheep, qui passe de case en case avec un délai quan on fait un déplacement. Et Sheep suit ce target en continue ( Update) avec un Vector3.SmoothDamp.
C'est la velocity du SmoothDamp dont je me sert pour savoir si Sheep va assez vite pour actionner un interrupteur mur hors cette valeur change en fonction du frameRate (remarqué en changeant de Vsync), pour un même déplacement.
j'ai essayé de jouer avec les Time.deltaTime etc, rien y fait jamais la même valeur.
Il va donc falloir je revoie le principe de déplacement je crois..
Attention, comme c'est un jeu en vue plongeante, ajouter des étages risque de nuire à la lisibilité globale.djulio74 a écrit : ↑24 Oct 2018 08:07J'ai aussi de nouvelles idées que je vais tenter de mettre en place :
- les ascenseurs : jusqu'ici, Sheep marche au sol, ce qui est normal! ^^ , mais pourquoi pas ajouter un étage en le faisant marcher sur les murs, en devant passer d'un étage a l'autre via ascenseurs ( et pourquoi pas même sous l'eau ^^)
Très bonnes idées
Re: [WIP] Sheep ( un mouton pas si stupide)
Très malin, juste ce qu'il faut de puzzle (généralement je suis pas très patient).
Je me permet deux trois mini conseils qui ne concernent pas le gameplay car je trouve qu'il fonctionne bien :
Puisque le jeu se joue entièrement au clavier, ce serait parfait si la touche entrée permettait de lancer la partie (histoire de pas avoir à attraper la souris)
Tu pourrais aussi cacher le curseur du coup.
Doubler les touches avec le ZQSD permettrait de ne jouer que d'une main (et rendrait peut être service aux gauchers).
Pourquoi pas une touche restart aussi.
Alors c'est sûr que ce type d'ajustements ne rendra pas le jeu meilleurs, mais il le rendra plus agréable, plus accueillant.
En plus ce sont vraiment de toutes petites choses qu'il se règlent en quelques lignes de code.
Sinon l'aspect mouvant des blocs, je suppose que c'est un shader maison ?
Je me permet deux trois mini conseils qui ne concernent pas le gameplay car je trouve qu'il fonctionne bien :
Puisque le jeu se joue entièrement au clavier, ce serait parfait si la touche entrée permettait de lancer la partie (histoire de pas avoir à attraper la souris)
Tu pourrais aussi cacher le curseur du coup.
Doubler les touches avec le ZQSD permettrait de ne jouer que d'une main (et rendrait peut être service aux gauchers).
Pourquoi pas une touche restart aussi.
Alors c'est sûr que ce type d'ajustements ne rendra pas le jeu meilleurs, mais il le rendra plus agréable, plus accueillant.
En plus ce sont vraiment de toutes petites choses qu'il se règlent en quelques lignes de code.
Sinon l'aspect mouvant des blocs, je suppose que c'est un shader maison ?
Re: [WIP] Sheep ( un mouton pas si stupide)
Salut et merci du retour.
Alors en effet oui il y a amélioration à faire niveau contrôle, et je prend bonne note de tes conseils.
Je les mettrai en place pour la prochaine build.
Pour ce qui est des bloc non pas de shader particuliers, du simple diffuse.
Juste des manipulations de transform position et scale pour les mouvements.
J'ai pour l'instant fait vraiment très simple niveau apparence, pour essayer me concentrer sur le game play.
J'ai d'ailleurs revu intégralement la gestion des mouvements/interactions pour plus de possibilités d'évolution ( ajout des idées de mon post précédent)
Alors en effet oui il y a amélioration à faire niveau contrôle, et je prend bonne note de tes conseils.
Je les mettrai en place pour la prochaine build.
Pour ce qui est des bloc non pas de shader particuliers, du simple diffuse.
Juste des manipulations de transform position et scale pour les mouvements.
J'ai pour l'instant fait vraiment très simple niveau apparence, pour essayer me concentrer sur le game play.
J'ai d'ailleurs revu intégralement la gestion des mouvements/interactions pour plus de possibilités d'évolution ( ajout des idées de mon post précédent)
______________________________________________________________
\_______________________ Impossible is nothing _______________________/
Re: [WIP] Sheep ( un mouton pas si stupide)
Bonjour
une petite idée, je le trouve bien seul ton mouton, pourquoi n'y aurait-il des "loups" qui traverserait son chemin avec des aller-retour continus ou pas qu'il faudrait éviter de rencontrer.
une petite idée comme ça en passant
une petite idée, je le trouve bien seul ton mouton, pourquoi n'y aurait-il des "loups" qui traverserait son chemin avec des aller-retour continus ou pas qu'il faudrait éviter de rencontrer.
une petite idée comme ça en passant
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.
Re: [WIP] Sheep ( un mouton pas si stupide)
Salut a tous!
Bon encore une fois pas grand changement mais :
+ Ajout d’ascenseurs :
-- > J'ai du revoir totalement la gestion de Sheep sur la detection des sols praticable en séparant par niveau
+ Mise en application des suggestions de Liven (ZQSD, cacher souris, restart niveau...)
-- > pas grand chose, comme tu disait, 3 lignes de code
+ Petites animations du décors via un shader basique (mouvement eau et arbres)
-- > à la création des mesh, j'assigne des vertex colors pour simuler houle et vent dans le shader
Note en passant : Je trouve étonnant que quand on manipule les Vertex dans un shader les ombres ne suivent pas. pourtant essayé en defered et forward rendering, Me suis pas plus penché sur la question mais j'ai du rater un truc je pense.
Le petit lien habituel :Download "Sheep, un mouton pas si stupide"
Pour l'instant à la génération d'un niveaux, tout ce qui est sol/arbre/eau sont chacun dans leur GameObject ( donc 3 , un par type de décors fixe), mais tout le reste qui est interactif/mobile a son propre gameObject instancié, pour pouvoir les bouger indépendamment. Le problème c'est que déjà rien que pour le niveau 4, ça fait 170 drawcall ( nombreux interrupteurs, radeaux..), et la map de fait que 16x16...
Donc, le but suivant sera de pouvoir tout regrouper, et ne faire bouger que les vertex, en direct ou avec un shader ( merci Liven pour l'idée involontaire ^^).
pour ton idée Emile, elle est pas mauvaise, je la garde sous le coude. Juste un peu peur que le jeux devienne un "dead et retry" plutôt qu'un casse tête. Mais pourquoi pas combiner les deux. A voir.
Allez Hop, la suite au prochain épisode.
EDIT :
bon j'ai trouvé pour les ombres lorsque l'on modifie les vertex dans un shader : il suffit d'ajouet "addshadow " :
Comme quoi des fois c'est vraiment tout bête ^^
Bon encore une fois pas grand changement mais :
+ Ajout d’ascenseurs :
-- > J'ai du revoir totalement la gestion de Sheep sur la detection des sols praticable en séparant par niveau
+ Mise en application des suggestions de Liven (ZQSD, cacher souris, restart niveau...)
-- > pas grand chose, comme tu disait, 3 lignes de code
+ Petites animations du décors via un shader basique (mouvement eau et arbres)
-- > à la création des mesh, j'assigne des vertex colors pour simuler houle et vent dans le shader
Note en passant : Je trouve étonnant que quand on manipule les Vertex dans un shader les ombres ne suivent pas. pourtant essayé en defered et forward rendering, Me suis pas plus penché sur la question mais j'ai du rater un truc je pense.
Le petit lien habituel :Download "Sheep, un mouton pas si stupide"
Pour l'instant à la génération d'un niveaux, tout ce qui est sol/arbre/eau sont chacun dans leur GameObject ( donc 3 , un par type de décors fixe), mais tout le reste qui est interactif/mobile a son propre gameObject instancié, pour pouvoir les bouger indépendamment. Le problème c'est que déjà rien que pour le niveau 4, ça fait 170 drawcall ( nombreux interrupteurs, radeaux..), et la map de fait que 16x16...
Donc, le but suivant sera de pouvoir tout regrouper, et ne faire bouger que les vertex, en direct ou avec un shader ( merci Liven pour l'idée involontaire ^^).
pour ton idée Emile, elle est pas mauvaise, je la garde sous le coude. Juste un peu peur que le jeux devienne un "dead et retry" plutôt qu'un casse tête. Mais pourquoi pas combiner les deux. A voir.
Allez Hop, la suite au prochain épisode.
EDIT :
bon j'ai trouvé pour les ombres lorsque l'on modifie les vertex dans un shader : il suffit d'ajouet "addshadow " :
Code : Tout sélectionner
#pragma surface surf Lambert vertex:vert addshadow
______________________________________________________________
\_______________________ Impossible is nothing _______________________/
Re: [WIP] Sheep ( un mouton pas si stupide)
Me revoila!
Bon je sais que vu le type du jeux, il n'est pas spécialement nécessaire de faire de grandes optimisations, mais j'y tenais surtout pour l'exercice que c'était., Puis ça permet toujours d'apprendre de nouvelles choses.
Je suis donc passé (pour le niveau 4 en 16x16 cases) de 180 DrawCall à seulement 14 DrawCall , et d'un material par élément possible ( pour les couleurs) à seulement un unique Material pour tout ce qui est niveaux...
Au cas ou ça intéresse quelqu'un, vais tenter d'expliquer :
- J'ai un Array d'élément ELEMENT[] possible pour le niveau ( sol, eau, inter, ascenseur.. etc)
- chaque élément possédè des caractéristiques ( couleur, étage, animé..etc)
- un Array de struc CASE[], regroupant toute les donnée d'une case (type, cible, étage..etc)
A la génération d'un niveau :
-> je lis chaque pixel en color32, la valeur de Color.r renvoi à l'index de ELEMENT[], les coordonné du pixel est l' INDEX de CASE[], Color.g et Color.b renvoient aux coordonnées de la case cible si élément interactif.
-> j'assigne à CASE[INDEX] les donnée récupérées sur ELEMENT[index]
-> je crée un Mesh de CASE[].Length*4*5 Vertex ( une case = un cube de 5 face, 4 vertex par face.
-> pour chaque CASE[n], j'assigne les vertex/UV..etc en fonction des données de CASE[n]
Au final tout le niveau est un seul GameObject avec un seul mesh, un seul Mat, D’où le gain de DrawCall.
Pour les mouvement, il me suffit par exemple de modifier l'alpha du vertex Color, qui correspond à la hauteur de la CASE, et le shader place les vertex concerné au bon niveau 'y' .
Bon je sais que vu le type du jeux, il n'est pas spécialement nécessaire de faire de grandes optimisations, mais j'y tenais surtout pour l'exercice que c'était., Puis ça permet toujours d'apprendre de nouvelles choses.
Je suis donc passé (pour le niveau 4 en 16x16 cases) de 180 DrawCall à seulement 14 DrawCall , et d'un material par élément possible ( pour les couleurs) à seulement un unique Material pour tout ce qui est niveaux...
Au cas ou ça intéresse quelqu'un, vais tenter d'expliquer :
- J'ai un Array d'élément ELEMENT[] possible pour le niveau ( sol, eau, inter, ascenseur.. etc)
- chaque élément possédè des caractéristiques ( couleur, étage, animé..etc)
- un Array de struc CASE[], regroupant toute les donnée d'une case (type, cible, étage..etc)
A la génération d'un niveau :
-> je lis chaque pixel en color32, la valeur de Color.r renvoi à l'index de ELEMENT[], les coordonné du pixel est l' INDEX de CASE[], Color.g et Color.b renvoient aux coordonnées de la case cible si élément interactif.
-> j'assigne à CASE[INDEX] les donnée récupérées sur ELEMENT[index]
-> je crée un Mesh de CASE[].Length*4*5 Vertex ( une case = un cube de 5 face, 4 vertex par face.
-> pour chaque CASE[n], j'assigne les vertex/UV..etc en fonction des données de CASE[n]
Au final tout le niveau est un seul GameObject avec un seul mesh, un seul Mat, D’où le gain de DrawCall.
Pour les mouvement, il me suffit par exemple de modifier l'alpha du vertex Color, qui correspond à la hauteur de la CASE, et le shader place les vertex concerné au bon niveau 'y' .
______________________________________________________________
\_______________________ Impossible is nothing _______________________/
Re: [WIP] Sheep ( un mouton pas si stupide)
Et bien ça se bouscule ici! ^^
J'avance tranquillement. Aujourd'hui me suis arraché les cheveux pour modifier mon shader de terrain. En fait je lui ai rajouté une tesselation. Je voulais arrondir les blc, et comme ils sont généré par script, ça aurait été le merdier pour créer tout les mesh.
Avec la tesselation ( donc DX11) j'ai bien luté pour avoir et la tesselation, et mes vertex Color, alors qu'en fait c'est tout simple.
Ouvrir en grand pour bien voir la différence :
Le petit lien habituel :Download "Sheep, un mouton pas si stupide", Avec possibilité de changer de shader
Ps : Je suis passé de la version 4 d'unity à la version 2017.4!!!
Ps 2 :
Comme toujours je ne met pas tout les script et shader, mais si certains sont intéressé, je partage volontiers
J'avance tranquillement. Aujourd'hui me suis arraché les cheveux pour modifier mon shader de terrain. En fait je lui ai rajouté une tesselation. Je voulais arrondir les blc, et comme ils sont généré par script, ça aurait été le merdier pour créer tout les mesh.
Avec la tesselation ( donc DX11) j'ai bien luté pour avoir et la tesselation, et mes vertex Color, alors qu'en fait c'est tout simple.
Ouvrir en grand pour bien voir la différence :
Le petit lien habituel :Download "Sheep, un mouton pas si stupide", Avec possibilité de changer de shader
Ps : Je suis passé de la version 4 d'unity à la version 2017.4!!!
Ps 2 :
Comme toujours je ne met pas tout les script et shader, mais si certains sont intéressé, je partage volontiers
______________________________________________________________
\_______________________ Impossible is nothing _______________________/
Re: [WIP] Sheep ( un mouton pas si stupide)
Petite mise a jour, pas trop eu le temps de rajouter beaucoup de chose.
- petite amélioration du shader de tesselation,
- ajoute de nuance dans les couleurs des éléments
- modification des "animation" des éléments ( pas des animations, juste des coroutines)
- ajout possibilité de rejouer les niveaux déjà terminé
- test de mouvement de camera pour casser le coté trop figé/vue fixe
Le petit lien habituel :Download "Sheep, un mouton pas si stupide"
J'ai pu tester ce we sur un pc portable de "bureautique", donc pas ouf niveau puissance, bah ça a vite tendance à ramer...
Par contre ça m'as permis de corriger quelques bug qui se produisaient quand ça ramait trop.
- petite amélioration du shader de tesselation,
- ajoute de nuance dans les couleurs des éléments
- modification des "animation" des éléments ( pas des animations, juste des coroutines)
- ajout possibilité de rejouer les niveaux déjà terminé
- test de mouvement de camera pour casser le coté trop figé/vue fixe
Le petit lien habituel :Download "Sheep, un mouton pas si stupide"
J'ai pu tester ce we sur un pc portable de "bureautique", donc pas ouf niveau puissance, bah ça a vite tendance à ramer...
Par contre ça m'as permis de corriger quelques bug qui se produisaient quand ça ramait trop.
______________________________________________________________
\_______________________ Impossible is nothing _______________________/