AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-20%
Le deal à ne pas rater :
(Adhérents Fnac) Enceinte Bluetooth Marshall Stanmore II Noir
199.99 € 249.99 €
Voir le deal

 

 [Résolu]Optimisation graphique

Aller en bas 
2 participants
AuteurMessage
PixOut
Nouveau



Messages : 9
Localisation : Paris

[Résolu]Optimisation graphique Empty
MessageSujet: [Résolu]Optimisation graphique   [Résolu]Optimisation graphique EmptyMer 13 Fév 2013 - 0:36

Bonjour à tous!

Ceci est mon premier message sur le CBNA, je commence donc par une rapide présentation.

Je suis donc PixOut, j'ai découvert game maker il y a peu et j'ai décidé de me lancer dans un projet amateur pour mon plaisir et pour pouvoir assouvir mes envies de game design/level design à l'aide d'un outil à ma portée.
J'ai décidé de créer un blog pour suivre l'évolution de mon projet depuis le départ (celui ci est surtout destiné à moi-même, vous pouvez néanmoins le consulter ici : www.pix-out.blogspot.com ) et j'ai directement fait l'acquisition de GM : Studio en profitant d'une promo. Je suis toujours un débutant en GML, mais je commence à avoir quelques notions (quand je lis du code je comprend à peu près ce qu'il se passe si c'est pas trop compliqué). Par contre, je n'ai presque jamais programmé avant ça, je pense donc que mon code n'est pas très propre ni très optimisé.

Si je poste aujourd'hui, c'est pour plusieurs raisons. J'ai fait pas mal de recherche sur ce forum ainsi que sur divers forums anglophones mais je n'ai pas encore réussi à trouver de réponses à certains problèmes que je voudrait régler avant de me lancer dans la partie level design de mon jeu

Pour commencer, vous pouvez trouver une vidéo ainsi qu'une version jouable du jeu en question ici-même : http://pix-out.blogspot.fr/2013/01/premiere-version-jouable.html
Ainsi que la source (ce n'est pas la toute dernière version mais peu importe) : https://docs.google.com/file/d/0B8tPyHQ_JAwGb1VfUTIySWxTbnM/edit?usp=sharing

Voici plusieurs problèmes que j'ai rencontré, je les ai divisés en plusieurs questions afin que le sujet reste clair. Je ne demande pas nécessairement une réponse précise pour chaque question (même si ça serait le pied ! Wink), un simple lien vers un post pouvant répondre a l'une de mes question sera évidemment le bienvenue !

1) Résolution graphique

Quelle est selon vous la résolution qui me permettrait d'avoir un bon rendu visuel chez la plupart des utilisateurs ? Pour l'instant j'ai gardé du 640*480 et le sprite de ma boule fait 32*32, mais en plein écran c'est vraiment moche ! D'ailleurs, si je veux un jeu en 1024*768, il me suffit d'avoir une view de cette même taille ?
J'ai essayé d'importer des sprites rippés d'autres jeux et le rendu reste assez baveux, est ce qu'il y a quelque chose que je ne sait pas ? Si je veux un rendu "HD" (ou du moins assez propre), quelle taille devraient avoir mes sprites ?

Edit : Vu la simplicité de l'univers graphique (beaucoup de formes géométriques), j'aimerais bien avoir des graphismes un peu typé flash si vous voyez ce que je veux dire, je dois utiliser un logiciel de dessin vectoriel ? (j'ai tout fait sous paint là).

2) Rafraîchissement de l'écran

Vous pouvez vous rendre compte en regardant la vidéo (mais encore plus en jouant au jeu en plein écran) de certains problèmes de rafraîchissement. Il y a comme un effet de vieux téléviseur qui apparaît sur les sprites et le décor lorsque le joueur avance. J'ai passé chaque room en 60FPS, ça améliore le résultat mais ce n'est toujours pas nickel ... est ce que quelqu'un sait d'où ça vient et comment je peux corriger ça ?

Edit : problème à moitié résolu en utilisant "use synchronization to avoid tearing" dans global game setting/windows/graphics. Ce n'est toujours pas parfait mais je note une grande amélioration.

3) Feedback lors de la mort du joueur

J'ai compris la technique utilisée dans l'un des tuto de Yoyo Games qui consiste à utiliser un sprite différent pour l'animation de mort et à effectuer toutes les actions qui découlent de la mort du joueur à la fin de cette animation. Mon problème c'est que j'utilise un effet pour l'explosion de ma boule lors de la mort du joueur à l'aide de la fonction effect_create_above(). Le rendu est très joli, mais je n'arrive pas à détruire l'instance et créer l'effet tout en gardant la caméra fixée sur l'action pendant 2 secondes avant de faire repop le joueur au début du niveau.

J'ai essayé d'utiliser une alarme, mais si je détruit l'instance l'alarme n'existe plus. Si je ne détruit pas l'instance ça fonctionne, mais c'est très moche car la boule reste affichée après l'effet d'explosion.

J'ai pensé à mettre une alarme dans l'objet que j'utilise pour contrôler le niveau, mais je ne sais pas comment lui dire de faire repop le joueur 2 secondes après que l'instance soit détruite ... Bref, je suis vraiment perdu de ce côté. J'ai bien trouvé des tuto pour mettre le jeu en pause mais je n'ai pas réussi à les adapter à la situation présente.

n.b : dans le fichier source que je vous ai partagé, il n'y a pas du tout de feedback pour la mort, le joueur réapparaît instantanément au début du niveau lorsqu'il meurt


Voilà, je crois que c'est tout pour le moment (c'est déjà pas mal, je ne sais même pas si quelqu'un va lire ça jusqu'au bout Very Happy). J'ai essayé de donner le plus d'informations possibles mais n'hésitez pas à me dire si je n'ai pas été assez clair.

Merci de m'avoir lu et merci d'avance pour vos éventuelles réponses !

Edit : changement du titre qui n'était pas vraiment approprié


Dernière édition par PixOut le Sam 16 Fév 2013 - 0:58, édité 5 fois
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

[Résolu]Optimisation graphique Empty
MessageSujet: Re: [Résolu]Optimisation graphique   [Résolu]Optimisation graphique EmptyMer 13 Fév 2013 - 7:01

Pour le 3), dans l'event end animation tu met
sprite_alpha=0;
alarm[0]=fps*2;
Et dans l'alarm 0 tu le fais repoper.
Revenir en haut Aller en bas
PixOut
Nouveau



Messages : 9
Localisation : Paris

[Résolu]Optimisation graphique Empty
MessageSujet: Re: [Résolu]Optimisation graphique   [Résolu]Optimisation graphique EmptyMer 13 Fév 2013 - 12:09

Comment ai-je pu ne pas penser à ça! Déjà un problème de réglé, merci beaucoup Smile

Edit : pour ceux qui voudraient utiliser la même technique que moi, j'ai du adapter légèrement ce que tu m'as conseillé.
J'utilise un script pour la mort de ma boule qui ressemble à

Code:

effect_create_above(ef_explosion,x,y,1,c_dkgray);
play_sound(snd_death);
score -= 200;
lives -= 1;
image_alpha = 0;
alarm[0] = 30;

et dans l'alarme 0 de l'obj_ball
Code:

instance_destroy();
instance_create(96,352,obj_ball);

En fait 2 seconde c'était beaucoup trop long (la boule avait le temps de mourir plusieurs fois dans certaines situations) et je n'ai pas trouvé de fonction sprite_alpha mais image_alpha semble fonctionner (problème de version de GM ?). En tout cas comme ça, ça a l'air de bien fonctionner).


Edit 2 : Mince ! Je viens de me rendre compte d'un problème ! Lorsque la boule reste en collision avec un mur qui doit la tuer, elle perd une vie par frame, j'ai cru que la solution était de mettre lives -= 1; et score -= 200; dans l'alarme, mais si je fais ça, tant que la boule reste en collision avec le mur elle explose en boucle (et comme l'alarme se réinitialise à chaque frame si le joueur ne sort pas de la collision il ne meurt jamais).

Une solution ?

PS : J'utilise les fonctions physiques pour ce jeu afin de donner un comportement plus naturel à la boule (avec une très légère restitution pour qu'elle fasse un petit rebond quand elle atterrit, peut-être est-ce dû à ça ?)

Edit 3 !

Ok, le problème est résolu, j'ai posté sur le forum de yoyo en m'aidant de ta piste et j'ai enfin quelque chose de fonctionnel. Il suffit de tester si l'objet est visible ou non avant de lancer le code :

Code:

if (image_alpha>0)
{
effect_create_above(ef_explosion,x,y,1,c_dkgray);
play_sound(snd_death);
score -= 200;
lives -= 1;
image_alpha = 0;
alarm[0] = 30;
}

puis de détruire l'instance pour ensuite la faire repop dans l'alarm event.

Merci beaucoup pour ton aide !
Revenir en haut Aller en bas
PixOut
Nouveau



Messages : 9
Localisation : Paris

[Résolu]Optimisation graphique Empty
MessageSujet: Re: [Résolu]Optimisation graphique   [Résolu]Optimisation graphique EmptyJeu 14 Fév 2013 - 16:53

Bonjour,

je me permet un double post car je cherche toujours de l'aide au sujet du choix de la résolution graphique (et éventuellement des choses à savoir pour avoir des graphismes propres même s'ils sont très simple).

Mes deux autres problèmes sont réglés mais je suis toujours en plein questionnement sur mes graphismes. Je suis en train d'apprendre à utiliser Inkscape (logiciel de dessin vectoriel) qui est parfait pour réaliser le type de graphismes que je recherche mais lors de mes derniers essais, même les sprites HD étaient baveux (probablement un problème de résolution).

Merci d'avance pour votre aide, je viendrais poster mes avancées si je trouve ce qui cloche.

Edit : RÉSOLU

Ok, j'ai compris comment donner meilleure gueule à mon jeu de façon assez simple, vous pouvez voir le nouveau rendu ici : https://www.youtube.com/watch?v=c9ESVBgiBSA

Tout est beaucoup plus propre qu'avant, et pour ça j'ai utilisé un programme de dessin vectoriel (inkscape en l'occurence, entièrement gratuit). Il y a plein de tuto sur le net pour apprendre rapidement à faire des choses simples. Il suffit ensuite d'exporter ses vecteurs en bitmap et le programme se charge seul de l'anti aliasing ce qui rend les graphismes plus nets que des sprites fait des débutants comme moi.

Dans ma quête, j'ai aussi appris à changer la résolution (ça paraît bête mais personne n'avait répondu à ma question, je pensais qu'il suffitsait de régler la view en 1024 pour avoir cette même résolution). En fait il suffit simplement de changer les valeurs de "Port on screen" dans les options de la view (ainsi que celles de la view en question).

Pour ce jeu je garde ma basse résolution pour ne pas tout refaire, mais j'ai fait des test a plus haute réso et des plus gros sprites, le rendu est très net !

Voilà, peut-être que ça aidera d'autres débutants qui se demandaient comme moi pourquoi leurs graphismes étaient dégueulasse Smile
Revenir en haut Aller en bas
Contenu sponsorisé





[Résolu]Optimisation graphique Empty
MessageSujet: Re: [Résolu]Optimisation graphique   [Résolu]Optimisation graphique Empty

Revenir en haut Aller en bas
 
[Résolu]Optimisation graphique
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: