Forums Développement Multimédia

Aller au contenu

Jeux qui rame sur tablette

CODE

2 réponses à ce sujet

#1 philippeonline

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 102 messages

Posté 15 September 2013 - 02:09 AM

Hello,

Mon début de jeux (2D) qui tourne bien sur PC rame une fois sur la tablette....
C'est dommage.

J'aimerai savoir d'ou viens le problème pour essayer d'optimiser.

S'agit il du code, du nombre d’occurrence de symbole graphique affiché simultanément sur la scène ?
Du nombre de symbole graphique au total ?
Du nombre de TweenMax ?

Merci pour votre aide.

#2 tlecoz

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 3486 messages

Posté 15 September 2013 - 15:59 PM

Hello !
As tu utilisé Starling ?
Si non, tu devrais.

Pour faire "simple", une anim Flash normale utilise le CPU pour les calcul. Un CPU est capable de prendre en charge tout type de calcul mais n'est optimisé pour aucun d'entre eux. Généralement, sur un PC, le CPU chauffe pas mal du fait qu'il est très sollicité et on utilise plusieurs gros ventilateur ainsi qu'un ou plusieurs dissipateurs thermique , voire d'autres système plus complexe, pour faire en sorte qu'il ne fonde pas.

Dans le cas d'une tablette, on ne peut pas utiliser de CPU (ou très peu) car cela impliquerait soit de se bruler les mains à cause de la chaleur dégagé (et ce serait de vrai brulure Image IPB ) , soit de perdre le coté ultra plat à cause de la ventilation/dissipation thermique.

Du coup, on a utilisé un GPU au lieu du CPU dans les smartphone/tablette. Le GPU est un processeur spécialisé dans le traitement graphique. Il contient un très petit nombre de fonctions, mais celles ci sont très optimisée et peuvent être executée très rapidement, tout en étant peu énergivore.

Pour arriver à ce genre de rendu, il faut changer pas mal de choses dans sa manière de coder car lorsqu'on utilise le CPU, on peut envoyer les données "en vrac" et laisser le CPU se débrouiller pour faire le traitement et afficher un résultat.
Quand on bosse avec le GPU, le développeur doit se rapprocher de la couche matérielle en quelque sorte et fournir des gros paquet de données très denses que le GPU traitera d'un seul coup, plutot que de passer par plein d'objets.

Cela rend la programmation coté GPU beaucoup plus complexe à mettre en place qu'une animation classique.
Heureusement, il y a des framework type Starling qui font tout le sale boulot pour toi Image IPB

Bon courage !

#3 philippeonline

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 102 messages

Posté 15 September 2013 - 19:02 PM

Bonjour,


Merci pour ta réponse tlecoz.

Je me suis renseigner sur Starling, outre le fait que toute la doc est en anglais, il va me falloir repenser mon jeux en terme de classe.
(c'est pas gagné XD)

J'aurai pas mal de question de ce côté là, mais je vais commencer par étudier cela bien sagement !

Jusqu'ici en gros j'ai fait ça :

Importer des occurrences depuis la bibliothèque
Utiliser des tableaux pour stocker mes occurrences
utiliser tweenmax pour faire bouger les occurences
utiliser un hitTest entre plusieurs occurences à l'aide d'une boucle et des tableaux.

J'ai aussi utiliser les classes getTimer(), TimeEvent(), ainsi que manipuler des variables.

Par contre, bien que j'ai saisit le sens de l'écriture d'une classe de base, je n'ai jamais vraiment travailler avec.

Sinon j'ai retrouvé une certain fluidité, en supprimant l'interpolation d'une seule occurrence ! (un soleil crée avec illustrator)



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)