Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Devrais-je utiliser sf::View ?  (Lu 1111 fois)

0 Membres et 1 Invité sur ce sujet

Lostindark

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Devrais-je utiliser sf::View ?
« le: Novembre 11, 2014, 04:50:18 pm »
Bonjour tout le monde ! Je travaille en ce moment sur un jeu, même si je suis un peu débutant dans cet univers, ça fait un moment que je me documente et je me suis enfin lancé, dans un jeu basé sur un ECS. Mais je me retrouve face à un problème : on m'a dit qu'utiliser des sf::Sprite n'était pas très optimisé, je pense que c'est vrai mais par souci de simplicité, je préfère utiliser des Sprite pour mes entités.

Mais voila, vu que c'est coûteux en mémoire, je voudrais essayer d'optimiser tout ça un peu, surtout que je risque d'avoir beaucoup d'entités dessinables à certains moments. Je me suis donc tourné vers une solution : afficher tout ce qui est "à l’intérieur de la fenêtre".

Mais voilà : on m'a dit que si utiliser des sprites était coûteux en mémoire, c'était parce que les appels à draw() l'était. Est-ce que c'est vrai ? Autrement dit, vaut-il mieux pour moi trier les éléments moi même et n’appeler draw() que avec les éléments qui sont dans l'écran, ou appeler draw() pour tous et laisser faire une sf::View sont boulot ?

Y a t'il d'autres moyen d'optimiser tous ça ? (Les sf::VertexArray me semblait pas si mal mais j'ai du mal a voir comment m'en servir de la bonne manière ... Dans l'exemple de la tilemap des tutorials, il appel draw avec un seul grand VertexArray, comment je pourrais faire ça si mes entités sont séparées ?)

Merci d'avance pour vos réponses ! :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Devrais-je utiliser sf::View ?
« Réponse #1 le: Novembre 11, 2014, 05:14:44 pm »
Première chose : ne te lance pas dans de grandes optimisations sur des "on m'a dit que...". Tu vas perdre ton temps. Fais ton jeu, prend du recul, regarde ce qui coince, et optimise ces choses-là.

Effectivement les appels à draw() sont ce qu'il y a de plus coûteux, et tout appel que tu pourras éviter sera bénéfique à tes performances. Mais ne te focalise pas sur ça dès le départ. Concentre toi sur le gameplay, sur le jeu en lui-même. Optimise dans un second temps, une fois que tu auras de la matière à optimiser.
Laurent Gomila - SFML developer

Lostindark

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Re : Devrais-je utiliser sf::View ?
« Réponse #2 le: Novembre 11, 2014, 06:13:51 pm »
Je vais essayer de moins me concentrer sur l'optimisation, le truc c'est que j'ai un peu peur d'arriver avec 30 fichier Lua a éditer parce que je décide de diviser la classe SpriteComponent en TransformComponent et RenderComponent si jamais j'avais des problèmes de vitesse d’exécution ...

Bon, chui peut-être un peu parano aussi !  ;D

Merci beaucoup pour tes conseils ! Je vais donc garder le sprite pour l'instant   ;)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Devrais-je utiliser sf::View ?
« Réponse #3 le: Novembre 11, 2014, 06:44:04 pm »
De toute façon, croire que tu vas finir ton jeu nickel d'un seul trait est illusoire. Comme tout le monde, tu recommenceras tout un tas de fois avant d'arriver à un truc à peu près correct ;)

Donc n'aie pas peur, et commence à coder. C'est la seule manière d'avancer.
Laurent Gomila - SFML developer