Messagerie


Fichier image JPG qui rend le jeu trop lourd

Yazorius
200 messages
Fusion 2.5 Dev
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5
dimanche 31 janvier 2016 à 10:20

Un forum propose des solutions au coup par coup, pas des notions de programmation.

Ici les gens donnent des conseils, rien n'oblige à les suivre, chaque projet est différent, perso, je ne prétends pas détenir la solution, et encore moins juger un cliqueur.


J'ai l'impression que tu as mal pris mes propos. Pourtant, il ne disaient pas que les membres de ce forum jugent ou autre. Si je ne suis pas les conseils, ce n'est pas parce que je n'en ai pas envie, mais parce que j'en suis incapable. En quelques phrases, il est proposé d'adopter une solution qui a tout pour être fonctionnelle, sauf que cela requiert de ma part une refonte intégrale de tout le système. Et comme je n'ai déjà pas compris la moitié de ce que je faisais, ...

Mais quoi qu'il arrive, loin de moi de dire ou penser du mal de toute l'aide que vous apportez. Elle est simplement hors de ma portée, hélas. Ce qui vous semble être naturel dans l'utilisation de tel objet ou telle fonction, et qui demande de faire certaines choses précises dans l'éditeur d'évènement, est pour moi du ressort de la programmation. Pas du code pur, mais ça s'en apparente tellement que je n'y comprends absolument rien. Mais vos réponses sauront sans nul doute aider d'autres personnes dans le même cas que moi et qui profiteront alors de ce post pour se débloquer.


Plutôt que d'utiliser une image énorme, il faut la découper en petits morceaux d'objet actif. Comme un puzzle. Ça prendra moins de place en mémoire et dans l'exécutable final.

Et pour y appliquer une rotation, en jouant avec les points chaud, tu peux faire tourner tout ces bouts ensemble pour donner l'illusion qu'il n'y a que une seule grosse image qui tourne.


En supposant que je sache le faire, les bouts d'images constitueraient malgré tout une grande image d'un poids similaire à celle affichée d'un bloc. C'est avant tout un problème de poids du fichier final qui me gène. De plus découper chaque image en petits bouts donnerait environ une vingtaine de bouts par image minimum. Pour un projet qui est prévu en contenir plusieurs centaines (voire bien plus), c'est une solution particulièrement lourde à gérer hélas.


Je crois que justement c'est cette option qui est choisie ici, vu qu'il y a des décalages d'un calque marqué partout (je vous l'ai dit, j'y pige pas grand chose : je modifie, observe, tente autre chose, supprime, observe, remet, ... pour adapter un exemple généreusement offert à mon projet).

[quote author=Seyjin link=topic=1432.msg11598#msg11598 date=1454228684]
Pour réduire efficacement le nombre de couleurs de tes images, ne baisse pas le nombre de couleur du jeu. Ça va rendre celles ce dégueulasses. Il faut faire ça avant d'importer les images, dans Photoshop par exemple, c'est avec l'option « Enregistrer pour le web ». Et tu joue avec les réglages pou avoir un redu qui te plait.


Lol ! Ca j'ai fait ! C'est d'ailleurs la première chose que j'ai faite. Mais ça n'a servi à rien car Fusion a illico retransformé le JPG ultra-léger de 120ko obtenu en un lourd PNG de 10 mo. Ca fait du bien de voir malgré tout un truc que je comprends. J'ai presque l'impression d'être intelligent sur le coup  :P
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
dimanche 31 janvier 2016 à 10:55
justement, le but est de sauvegarder l'image en PNG avec moins de couleurs.
Patrice
2784 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
dimanche 31 janvier 2016 à 11:06
Ce que je peux te proposer c'est de m'envoyer ton mfa (en MP) que je vois comment tu as abordé ton projet et essayer de voir comment le modifier afin que tu puisse continuer dans de bonnes conditions. Je peux pas faire mieux sans savoir ce qui te parait faisable et ce qui est incompréhensible dans les exemples que nous pourrions te donner.
La principale difficulté dans l'aide à la programmation, c'est de proposer la solution que tu aurais pu trouver tout seul, sinon, ce n'est que faire à ta place...
Yazorius
200 messages
Fusion 2.5 Dev
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5
dimanche 31 janvier 2016 à 11:33

justement, le but est de sauvegarder l'image en PNG avec moins de couleurs.


Fusion reconvertit le PNG dans ses couleurs à lui (même en diminuant les couleurs du projet). La conversion automatique fait retrouver une image de 8 à 10 mo.


Ce que je peux te proposer c'est de m'envoyer ton mfa (en MP) que je vois comment tu as abordé ton projet et essayer de voir comment le modifier afin que tu puisse continuer dans de bonnes conditions. Je peux pas faire mieux sans savoir ce qui te parait faisable et ce qui est incompréhensible dans les exemples que nous pourrions te donner.[quote]

Je veux bien t'envoyer mon projet, Patrice. Je ne sais pas si tu pourras "améliorer" le truc sans tout refaire ^^"
Tu pourras d'ailleurs retrouver un système que tu as toi-même réalisé et proposé en exemple sur ce forum.

La principale difficulté dans l'aide à la programmation, c'est de proposer la solution que tu aurais pu trouver tout seul, sinon, ce n'est que faire à ta place...


Je ne compte pas à ce que ce soit fait à ma place. Juste que je suis noyé sous les possibilités sans jamais comprendre comment réussir à en aboutir une seule. Il y a à chaque fois de telles subtilités pour chaque objet ou fonction que si je passe du temps à essayer, je n'obtiens jamais rien (écran blanc, noir, aucune réaction, pas d'image, image qui ne tourne plus, ...). On ne pourras pourtant pas dire que je n'essaye pas. Je suis professeur moi-même (de musique), et je sais à quel point comprendre est important pour gagner en autonomie et profiter au mieux des possibilités offertes.

Comme je l'ai dit, ce n'est vraiment pas par manque de volonté que je n'y arrive pas. Et j'espère bien finir par comprendre petit à petit tout ce que j'ai fait, jusqu'aux moindres subtilités. C'est d'ailleurs pour ça que j'essaye d'améliorer mon projet : le personnaliser finira par me faire comprendre l'essentiel de ce que j'utilise. Sauf que s'il faut, pour éviter un problème, à chaque fois tout repenser pour passer par un objet que je ne connais pas, j'ai l'impression que jamais je ne finirai ce jeu ^^"

Comme toujours, merci à vous tous pour vos réponses. Je suis resté  longtemps seul face à mes problèmes et mon incapacité à les résoudre, et j'ai eu bien des moments où j'ai failli tout envoyer balader. Ne pas se sentir seul est une chose importante, et en cela, tout comme pour votre aide, je ne saurais tarir en remerciements.
Cyberclic
664 messages
Fusion 2.5 Dev
Exporteur iOS Exporteur Android Exporteur HTML5
dimanche 31 janvier 2016 à 11:42
Envoi-nous un mfa qu'on puisse regarder. Ca sera plus simple.
Cyberclic
664 messages
Fusion 2.5 Dev
Exporteur iOS Exporteur Android Exporteur HTML5
dimanche 31 janvier 2016 à 11:47
Et pour info, de nos jours, ça n'est plus tellement la taille disque qui importe, avec les connexions internet toujours plus rapides et l'espace disque qui se compte en téraoctet. Pour moi, le plus important c'est l'espace mémoire que l'application peut prendre. Et une grosse image non découpée, prend 3 fois plus d'espace en RAM que la même imagé découpée en plusieurs morceaux :



http://download.margasoft.fr/decoupe.zip

Donc à y réfléchir.
Modifié le dimanche 31 janvier 2016 à 11:51 par Cyberclic
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
dimanche 31 janvier 2016 à 11:58
Non, Fusion garde la palette de couleurs du PNG. C'est quand tu importe une image JPG qu'il y a cette conversion (puisque un JPG n'a pas de palette de couleur).

Après des tests sur un mfa de 140 Ko à la base :

• J'importe une image jpg de 227 Ko → le mfa fait 4817 Ko
• La même image convertie en png avec 64 couleurs de 810 Ko → le mfa fait 1268 Ko

Ça fait une sacré différence
Yazorius
200 messages
Fusion 2.5 Dev
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5
dimanche 31 janvier 2016 à 12:24
J'avais testé, mais sauvegardé en "gif" (le format par défaut).

Je viens de re-tester. En effet, on gagne en place (environ la moitié) pour une perte visuelle relative.
C'est dommage de perdre en qualité (il y a des pitis points là où il n'y en avait pas avant : j'ai choisi le moins de perte possible), mais si c'est la  seule solution à ma portée, pourquoi pas.

Merci pour cette solution qui peut dépanner si j'ai trop de fichiers graphiques à charger ^^
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
dimanche 31 janvier 2016 à 12:41
Le plus efficace reste les fichier externes. On peut t'aider pour ça.
Yazorius
200 messages
Fusion 2.5 Dev
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5
dimanche 31 janvier 2016 à 12:46

Envoi-nous un mfa qu'on puisse regarder. Ca sera plus simple.


Voici mon mfa actuel :
www.yazorius.com/Omni3D.rar

N'hésitez pas à dire si vous voyez un truc qui cloche ^^"
Ca ne m'étonnerait pas  ;)
Cyberclic
664 messages
Fusion 2.5 Dev
Exporteur iOS Exporteur Android Exporteur HTML5
dimanche 31 janvier 2016 à 13:25
Merci Yazorius.

Je ne suis pas un pro de l'optimisation des images, donc je laisse les autres opérer.
Par contre, je ne comprends pas bien pourquoi tu utilises toutes ces extensions, tous ces objets, et toutes ces lignes de code pour faire un bête scrolling vertical ? C'est trop lourd et trop complexe.

En une ligne, j'arrive au même résultat que toi :
http://download.margasoft.fr/Omni3D.zip

Oui, les clik défis de Kloug me manquent  :P
Modifié le dimanche 31 janvier 2016 à 13:28 par Cyberclic
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
dimanche 31 janvier 2016 à 14:29
L'extension Perspective c'est pour la déformation de l'image, pour simuler l'angle de vision.
Et Ultimate Fullscreen c'est pour garder le ratio de l'image, ça ajoute des bandes noirs sur les écrans avec un ratio différent.

Pour en revenir sur l'image. Avec l'objet Image Active, en début de scène tu fait « Créer un objet de décore », et hop ça te fait ton décore qui si répète en fond.
Yazorius
200 messages
Fusion 2.5 Dev
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5
dimanche 31 janvier 2016 à 14:42

En une ligne, j'arrive au même résultat que toi :
http://download.margasoft.fr/Omni3D.zip

Oui, les clik défis de Kloug me manquent  :P


>_<
J'ai fait au fur et à mesure.
Du coup, à chaque nouvelle idée, j'ai rajouté les objets qu'il me fallait, avec les lignes adéquates.
J'ai regardé ce que tu as fait. Il n'y a plus les effets de perspective et je vais perdre une partie de l'image sur les petites résolutions d'écran, mais ...
... ce que tu as fait me semble être de la pure magie. J'ai regardé de plus près et c'est ultra-propre, efficace, tout en restant identique dans le résultat.
Alors pourquoi ais-je fais comme j'ai fait ? Parce que je suis nul, c'est tout  ;D

Quant à Image active, je vais tenter de l'implémenter dans l'exemple modifié par Cyberclic pour voir comment ça peut arranger les choses pour moi.
Bref, comme toujours, je reste béa devant ce que vous faites alors que j'en bave pour obtenir mon résultat lourd ^^"
Yazorius
200 messages
Fusion 2.5 Dev
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5
dimanche 31 janvier 2016 à 16:25
Preuve que j'y pige que dalle, lorsque je mets une image active dans l'exemple de Cyberclic (une icône de base, sans fonction particulière), elle tourne avec le calque et réapparaît à chaque fois au même endroit : un truc idéal. Si je mets un "actif", il tourne mais ne revient pas (même si je l'empêche de se détruire s'il est loin de la scène). Et si je mets une image active, et qu'en début de scène je charge une image jpg : ça tourne mais ne se répète plus. Si je crée un élément de décors via cette image active, ça tourne pareillement sans se répéter. Voilà un exemple qui a fait que j'avais l'impression de devenir chèvre. Pourquoi une image active de base (icône) se répète, alors que si elle devient le fond (en tant qu'image active ou en tant que Décors créé par l'image active) ça ne se répète plus ?  ???

EDIT : maintenant, même l'image active en icône ne revient plus à sa place lorsque le calque a fait un tour. A croire qu'elle ne l'a jamais fait. Pfffffff. J'y retourne.
OK, j'ai refait, les images actives ne bouclent pas. Aucune. Même l'icône. Au moins, c'est rassurant, ça reste logique ^^" Pourtant je pensais vraiment qu'elle tournait ...
Kloug
1497 messages
Fusion 2.5
lundi 1 février 2016 à 09:11
Salut,

"J'ai l'impression que tu as mal pris mes propos."

Oui! J'ai très mal pris tes propos...

Plus sérieusement, je vais prendre le temps d'argumenter mes propos.

Un forum n'apporte que des solutions au coup par coup, c'est ce que tu es en train d'expérimenter.

L'idéal serait pour toi des notions de programmation, des abstractions, le problème c'est que le ciel, ne donne pas la même intelligence à tout le monde.

Il y a des personnes capables de saisir des abstractions, de jongler avec ces dernières.

Modestement, je pense être de ces personnes.

"Il y a un truc très simple à faire, des tests."

Incroyable! La team du comptoir se met à faire des tests, pour essayer de trouver un compromis.

A+++

Edit:
Ton lien vers ton mfa est invalide.

Cut Picture?
http://clickmoteur.blogspot.fr/2015/07/cut-picture-best.html

Un puzzle?
http://clickmoteur.blogspot.fr/2015/06/resolver-de-niveau-tout-terrain.html
________

"Quand une idée de jeu vidéo, traverse la tête d'un klik codeur, ce dernier doit automatiquement savoir quoi utiliser, dans l'interface TGF, MMF ou CTF."

"Normalement un klik codeur digne de ce nom, doit être capable de résolver un niveau à l'aide d'une seule ligne, donc rien d'extraordinaire en somme."

Félicitations! Cyberclic!
________
Pit73
1055 messages
Fusion 2.5 Dev
Exporteur iOS Exporteur Android Exporteur HTML5
lundi 1 février 2016 à 10:14
Hello
Juste quelques points de conseils :
- je te déconseilles les images supérieures à 2048, les cartes graphiques sont parfois limité en hard. Sur android par exemple ton image ne s'affichera pas.
- Je te conseille de trouver un compromis par exemple image gif 256 couleurs ou voire moins. dans certains cas ca passe très bien! et c'est léger.
- Attention à ne pas produire une image qui n'est pas une puissance de 2, les cartes graphique n'aime pas et modifie ton image et cela enfle la taille mémoire.
- Avant de te lancer dans un projet avec des milliards d'images, optimise ton moteur et passe en production une fois que tout est bien ficelé ( organisation du code, graphisme etc... )
Bon courage !
Kloug
1497 messages
Fusion 2.5
lundi 1 février 2016 à 10:31
Resalut,

Le principe de base, normalement accessible à un débutant.

Pano (HScrolling):
https://www.dropbox.com/s/8h9igzqwfc5vfcm/Pano.zip?dl=0

La seule difficulté, charger une image, via un dossier.
La formule.

Apppath$ + "image\" + "01.GIF"

A+++

Édit:
Option du runtime:
Cocher >> vitesse indépendante de la machine.
Cocher >> Mode d'affichage >> Standard.

Pour que l'exe tourne sur un max de machines.

Utilisateurs en ligne
  • Aucun utilisateur en ligne
  • 34 visiteurs au total

Derniers messages