Dois-je simplement créer des instances de tous mes graphiques en mémoire chargés à partir d'un fichier? Quelle est la meilleure façon de gérer cela? Ai-je juste besoin d'une sorte de gestionnaire d'actifs qui crée ces instances graphiques pendant l'écran de chargement et qui est ensuite mentionné plus tard?
Quelles sont les choses courantes qui doivent être préchargées dans les jeux? Combien devrais-je pré-charger?
Vaut-il la peine de montrer une sorte de barre de progression? Comment puis-je garder des temps de chargement courts? À quoi devrait ressembler l'écran de chargement?
Quels sont les bons exemples d'écrans de chargement? Des exemples de code?
Plus précisément, mon jeu est pour Andriod (Java / mobile), mais n'hésitez pas à rendre vos réponses génériques.
Réponses:
Les éléments typiques à précharger sont tout ce dont vous aurez besoin en temps réel. Enregistrez pour des concepts tels que des clipmaps et des megatextures (où l'idée est de charger les pièces dont vous avez besoin et de les mettre à jour de manière itérative lorsque vous vous déplacez dans le monde), vous allez vouloir garder tout ce dont vous avez besoin pour votre niveau / zone / quoi que ce soit en mémoire plutôt que sur disque. IO est lent, et vous ne voulez pas charger vos textures lorsque vous tournez au coin et qu'il est sur le point d'être affiché. Et par tout, je veux dire des textures, des sons, des maillages, des métadonnées ... tout.
Si vous pouvez afficher une barre de progression (c'est-à-dire que vous avez un mappage précis des étapes de chargement en pourcentage), alors affichez-le par tous les moyens. Sinon, affichez au moins quelque chose, comme un court message texte ou un indicateur de chargement, qui est mis à jour après chaque étape afin que vous puissiez au moins dire que quelque chose se passe.
S'il y a quelque chose dont vous savez qu'il sera nécessaire, mais pas tout de suite, vous pouvez le charger en arrière-plan et bloquer le jeu (pas génial, mais assurez-vous qu'il se produit rarement) s'il est nécessaire trop tôt. Cela vous aidera à réduire le temps de chargement. Je ne sais pas grand-chose sur le développement Android, ou si ce sera trop pour l'appareil à gérer en parallèle du jeu, mais il est généralement assez léger sur le processeur, donc il ne devrait pas y avoir de gros problème.
la source
Vous devez être "Splines réticulantes"
la source
Cela dépend si vous optez pour un écran de chargement et des transitions de niveau instantanées ou plusieurs chargements.
Je dirais que ce dernier serait meilleur de mémoire.
Quelque chose comme:
//First loading screen
Load menu layouts or whatever
Load GUI assets
Show something to pass the time
Switch to menu
//In between levels
Remove any graphics specific to the last level - get rid of something that isn't going to reappear like a boss.
Load level graphics that haven't already been loaded
Again, show progress or something to pass the time
Et lorsque vous chargez, assurez-vous de ne pas avoir d'écran noir. Ou d'ailleurs, un écran statique. Plusieurs fois, j'ai vu une image statique pendant un certain temps au début d'une application et j'ai immédiatement pensé qu'elle s'était écrasée.
Un bon moyen d'impliquer simplement le joueur serait un arrière-plan joliment dessiné d'une scène dans le jeu, ou une référence de scénario; une barre de chargement avec / sans pourcentage, tant qu'il ne s'agit pas d'un «chargement» statique; puis peut-être quelques informations.
la source
Sur les plateformes iPhone et Android, vous devez charger toutes les textures et tous les sons. Le chargement des textures et des sons est très lent sur les anciens téléphones comme l'iphone 2G, 3G ou G1. Vous ne pouvez pas le faire dans le jeu.
la source
Comme d'autres l'ont dit, si vous pouvez charger toutes les données d'un niveau avant de commencer à le jouer, vous aurez de bien meilleures performances. C'est une source fréquente de problèmes dans le temps d'image pour charger des ressources pendant le jeu.
Les choses courantes à faire pendant un écran de chargement sont une image de fond statique, un niveau très simple, quelques conseils et astuces sur la façon de jouer, des animations rapides, etc.
Voici l'écran de chargement pour APB. Assez cool. :) http://www.youtube.com/watch?v=p5STix1t_1E&feature=related
Voici un pseudo-code pour afficher une barre de progression dans un écran de chargement:
Ugh, forcé d'utiliser! = Parce qu'il a interrompu le rendu du code quand j'ai utilisé <
la source
Les écrans de chargement peuvent être utilisés pour cacher à peu près n'importe quoi; chargement des ressources, toutes les connexions nécessaires (tcp, etc.), remplissage des cartes avec des objets de jeu et initialisation.
La façon dont j'ai tendance à faire les choses est d'avoir une sorte de gestionnaire d'actifs (ou peut-être un gestionnaire pour chaque type d'actif - sons, graphiques, etc.) et de les charger de charger ce qui va être utilisé en mémoire. Ensuite, demandez à votre jeu d'extraire les références des gestionnaires.
L'affichage d'une barre de progression, la détermination des éléments à précharger, etc. semblent dépendre de votre projet, des temps de chargement et de vos goûts. Les barres de progression sont agréables si elles sont précises et si la charge est longue (il est bon de savoir combien de temps vous devez attendre).
Cela dit, sur mon téléphone Android, j'ai tendance à privilégier les applications qui ont leur propre écran de chargement personnalisé et fait avec goût. Il n'a pas besoin d'une barre, mais l'animation indique à l'utilisateur les programmes qui fonctionnent. Je pense qu'Android a une barre par défaut que vous pouvez utiliser, ce qui fait très bien l'affaire.
Voici une question SO qui pourrait vous intéresser.
la source
Il convient de noter que les plates-formes avec des exigences de contrôle de qualité (par exemple X360, PS3, DS, etc.) exigeront toutes que vous ayez une forme d'animation dans votre écran de chargement (ou en fait tout écran qui reste statique pendant plus de quelques secondes) ).
C'est parce que sinon l'utilisateur peut penser que votre jeu est tombé en panne, alors qu'en fait, il prend juste beaucoup de temps à charger. Même lorsque ce n'est pas une exigence, je le conseillerais certainement.
N'importe quelle forme d'animation est correcte, mais une simple barre de progression peut ne pas être la meilleure, car toute étape importante du chargement peut faire en sorte que la barre de progression ne bouge pas du tout pendant un certain temps, ce qui signifie que l'écran est tout aussi statique que s'il y en avait pas de bar du tout. Mieux vaut montrer une image en mouvement continu, comme une icône en rotation, en plus d'un indicateur de progression.
la source
Pour les écrans de chargement dans Conquest , je suis allé avec un peu de description de la mission (de quel type de jeu il s'agissait, ainsi qu'un peu de scénario pour la mission), et une aide de base sur les commandes.
En arrière-plan, je chargeais des sons. Les graphismes étaient tous chargés à la demande, et cela semblait assez bien fonctionner pour notre jeu, mais les sons étaient un ours, donc j'ai préchargé tous les sons nécessaires à la mission. Le bouton Loading / Start est désactivé jusqu'à ce que tout soit chargé, mais je n'ai aucun type d'animation (ce qui serait une bonne chose à ajouter).
C'est notre premier match, donc nous apprenons encore beaucoup, mais cela a bien fonctionné pour nous jusqu'à présent.
la source