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

Flash/Flex Discussion :

Utilisation d'un swf transparent pour une appli multi-calque


Sujet :

Flash/Flex

  1. #1
    Membre régulier

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Points : 117
    Points
    117
    Par défaut Utilisation d'un swf transparent pour une appli multi-calque
    Bonjour à tous

    Je suis en ce moment en train de programmer un jeu de stratégie en as3, et je me heurte fréquemment à un problème de consommation CPU.
    Une des chose qui en mange le plus, c'est lorsque le joueur fait un scroll sur la carte (la carte du jeu étant donc plus grande que la fenêtre), et que je déplace l'ensemble des objets qui s'y trouve : L'entièreté de la fenêtre doit être redessinée à chaque seconde, ce qui implique une grande consommation CPU, surtout en plein écran. J'ai réussi à minimiser les dégâts pour que ça ne soit pas trop affreux, mais hier je suis tombé sur ce jeu :
    http://fr.goblinkeeper.com/play (on peut y jouer directement sans s'inscrire)

    C'est un free-to-play qui peut vaguement ressembler à mon jeu sur certains aspect mais chez eux, le scrolling ne consomme presque aucune CPU supplémentaire. J'ai passé la journée a essayer de comprendre la méthode à utiliser, et j'ai découvert en affichant les zones de retraçage (possible avec la version debug de flash player), que le scrolling n'entrainait aucun retraçage du décors (seulement de quelques pauvres icones, qui semble collées par-dessus.
    Comment c'est diantre possible ça, me demandais-je ?
    Et la seule hypothèse que j'ai trouvé, c'est que le jeu en flash ne contiennent pas le-dit décors, que celui-ci soit dans une appli sous la fenêtre flash (en javascript, par exemple), et que la fenêtre flash le laisse voir par transparence.
    A chaque interaction de l'utilisateur de type scrolling, le programme en flash ne s'occuperait donc que de certaines icones et enverrait toutes les infos de scroll au programme javascript dessous, qui lui déplacerait le décors. Cette théorie a vaguement été confortée par le fait que lors de mouvement rapides, il se crée un petit décalage entre les icônes du flash (qui sont redessinées) et le décors dessous.

    Donc ma question c'est : à quel point cette théorie est absurde ? Ou est-ce qu'un truc comme ça est possible.

    Désolé pour le pavé, et merci d'avance.

  2. #2
    Membre régulier

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Points : 117
    Points
    117
    Par défaut
    Désolé de faire remonter ce vieux message, mais j'ai trouvé la réponse à ma question, et je me dis que ça intéressera peut-être quelqu'un d'autre.

    En fait, Goblin Keeper utilise le Stage 3D de Flash en exploitant une seule dimension, pour simuler une 2D (avec l'utilisation d'une bibliothèque comme Starling par exemple). Cela permet d'utiliser les ressources de la carte graphique, ce que Flash ne fait pas en temps normal (depuis la version 11, afin d'intégrer de la 3D, le lecteur utilise ces ressources, mais uniquement pour le Stage 3D. Ce qui, de mon point de vue, est con.)
    Est en fait, je n'étais pas si loin du compte avec mon histoire de couche gérant les décors en-dessous du jeu normal, puisque tout ce qui se passe sur le Stage 3D apparait en dessous du Stage Normal.

    J'en profite pour mettre en garde le moi du passé vis-à-vis de cette méthode, ainsi que ceux qui s'y intéresseraient :
    Après avoir passé des semaines à installer et intégrer la librairie Starling avec mon jeu, j'ai du faire machine arrière (et donc perdre beaucoup de temps). Certes on gagne en performances sur les déplacements de carte, mais on en perd lorsqu'on reste immobile, ou dès qu'il y a trop de choses à gérer (d'ailleurs Goblin keeper foire dès qu'il y a trop d'ennemis). De plus, c'est hyper instable, le résultat est différents sur mac et sur PC (openGL vx DirectX), et si on stocke trop de textures d'un coup (ce qui est nécessaire chez moi), ça plante.
    Voilà, je met du coup le topic en résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Choix d'un language pour une appli utilisant firebird
    Par xane11 dans le forum Connexion aux bases de données
    Réponses: 6
    Dernier message: 20/01/2012, 10h10
  2. Quelle API utiliser pour une appli client/serveur ?
    Par ManusDei dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 2
    Dernier message: 14/10/2010, 08h00
  3. Réponses: 0
    Dernier message: 06/08/2009, 13h23
  4. Architecture : Utilisation de Jersey pour une appli. Web standard
    Par Emmanuel_L dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 19/05/2009, 11h11

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