[WIP] Sheep ( un mouton pas si stupide)

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par djulio74 » 22 Oct 2018 18:06

Merci Deceleris, ça fait super plaisir!! :super:

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 _______________________/

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par djulio74 » 24 Oct 2018 08:07

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 :
:idea: - 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 ^^)
:idea: - des passages secrets : des murs ou arbre dans lesquels il pourrait passer.
:idea: - 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 _______________________/

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par Alesk » 24 Oct 2018 10:07

djulio74 a écrit :
24 Oct 2018 08:07
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..
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:07
J'ai aussi de nouvelles idées que je vais tenter de mettre en place :
:idea: - 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 ^^)
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:07
:idea: - des passages secrets : des murs ou arbre dans lesquels il pourrait passer.
:idea: - des des tunnels : des cases appairées 2 par deux. il saute dans une pour ressortir de l'autre.
Très bonnes idées ;)

Avatar de l’utilisateur
Liven
Messages : 268
Inscription : 30 Nov 2017 01:48

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par Liven » 27 Oct 2018 12:12

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 ?

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par djulio74 » 27 Oct 2018 16:23

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) 😉

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

EmileF
Messages : 676
Inscription : 18 Mars 2017 19:39

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par EmileF » 29 Oct 2018 11:18

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
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par djulio74 » 30 Oct 2018 02:53

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... 8|
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 :super: ^^).

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. :super:

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 
Comme quoi des fois c'est vraiment tout bête ^^

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par djulio74 » 31 Oct 2018 01:34

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' .

Image

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par djulio74 » 01 Nov 2018 20:52

Et bien ça se bouscule ici! ^^ :hehe: :hehe:
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. :pleur4:

Ouvrir en grand pour bien voir la différence :
Image Image

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!!! :mrgreen: :mrgreen:

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 _______________________/

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par djulio74 » 06 Nov 2018 17:37

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

Image

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 _______________________/

Répondre

Revenir vers « Vos créations, jeux, démos... »