25Fermer27
GoldenCrystalLe 12/02/2013 à 20:58
Je pense que c'est assez sage de séparer la représentation conceptuelle du niveau de sa représentation graphique, dans une certaine mesure.
Mais la façon d'implémenter ton jeu de manière générale dépend énormément de tes contraintes (objectifs) exactes.

Par exemple, si tu peux avoir 50 000+ sprites (typiquement: projectiles) à l'écran, tu ne vas probablement pas gérer ça de la même manière que si tu ne dépasses jamais la vingtaine.
De même, si ton niveau fait 400 écrans de long, tu vas sans doute vouloir implémenter la gestion du niveau et de l'affichage différemment que ce que tu aurais fait pour des niveaux de 4-5 écrans de long… (C'est sans doute un des points les plus importants d'ailleurs)

Tu dois aussi voir si un niveau est toujours une longue map linéaire, ou si c'est composé de différentes parties reliées entre elles par un mécanisme quelconque (exemple: les tuyaux de Mario…), et si lors d'une transition, les modifications faites (ennemi mort, bonus ramassé…) au niveau "vivant" sont conservées ou perdues.
Si tu choisis que le joueur ne peut jamais revenir en arrière, tu n'as pas trop besoin de te prendre la tête, mais, c'est un peu une expérience de jeu pourrie en général. (Super Mario Bros. 1 était comme ça. Sans doute en partie pour des raisons de mémoire.)

Selon les interactions que tu souhaites entre les objets (bonus, ennemis, joueurs), la façon de gérer les interactions ne sera pas la même. (Tu peux vouloir faire interagir les ennemis entre eux, par exemple deux ennemis qui se touchent se transforment en ennemi plus puissant. Ou bien un ennemi de type x peut tuer un ennemi de type y. Ou n'importe quel projectile peut tuer n'importe quoi. Etc.)

Enfin bref, en fait, c'est pareil qu'avant, il vaut mieux un plan assez bien défini au départ. (Quitte à revoir tes plans plus tard si besoin)
Si tu ne sais pas où tu veux aller, c'est difficile de savoir comment tu vas y arriver, et même de savoir où tu vas arriver cheeky

(Comme tu présentes un truc générique, je trouve ça très difficile de te répondre. Il existe au moins une "meilleure" solution à tous les problèmes (sauf si pas de solution du tout…), mais entre deux problèmes en apparence très similaires, les "meilleures solutions" peuvent être très différentes. La solution absolue n'existe pas. Tout ce qu'on peut te donner c'est des "en général", et "en général", les "en général" ne s'appliquent pas directement à ton problème sans ajustements cheeky)