Hop je met au propre mes notes sur le code du jeux voila quelque précision pour les plus programmeur d'entre vous
D'abord gardaient en tète que le compteur de vie, d'émeraude et d'anneau et même les nuages défilant au tout dernier plan sont des sprites « bête », que j'appelle plus sérieusement « sprite auto ».
ils ne nécessite aucune forme de gestion complexe car ils ne sont pratiquement pas (voire carrément pas) lier au gameplay.
Je réserve 32 sprites hardware pour ces sprites auto (0 à 15 pour l'avant plan et 48 à 63 pour l'arrière plan),
Pour tous le reste, il y a mon SEER, pour « Simple Entity-Engine Routine »
SEER à deux fonctions:
prendre en charge TOUT ce qui « existe et agit » dans le jeux.
Renseigner la boucle d'affichage sur la position du scroll d'après celle du joueur.
Nous reste donc 32 sprites libre qui sont directement gérer par SEER,
SEER ne gère pas simplement des sprites mais des entités,
Une entité combine à la fois un sprite hardware, un ensemble de données (position sur la map, étape d'animation etc...), et une ou plusieurs fonctions qui définit sont comportement à l'écran,
SEER reconnaît trois type d'entité:
Entité PLAYER: no comment, la plus importante et la plus complexe, le joueur,
Entité STATIC: la forme la plus simple, ne possède aucune collision ou action, parfaite pour créer des élément de décor, limité mais très peux gourmande en ressource.
Entité DYNAMIC: Plus versatile des formes, tous les ennemies et bonus en sont.
Jusqu'à 255 entités peuvent être déclare dans un niveaux, et 32 peuvent être afficher sur un même écran de jeux (il s'agit là de valeur maximum, pour une animation fluide il ne pas exagérer!),
Limitation:
Dans l'acronyme SEER « Simple » à son importance, contrairement a beaucoup d'autre moteur qui considère le joueur comme une entité dynamique comme les autres, SEER vois le joueur comme l'entité primaire.
En conséquence, si le joueur peux agir sur la position d'une entité dynamique (pousser un bloc par exemple),une entité dynamique peut bien agir sur l'état du joueur (perte d'anneau, gain d'une émeraude), mais JAMAIS sur ça position,
Ce partit pris de codage permet à SEER un gain de vitesse conséquent et une grande simplicité d'utilisation, mais nous prive de plateforme mobile, plutôt gênant pour un pur jeux de plateforme, moins pour un shoot...
… car là réside l'avantage de SEER, il est portable, vous pouvez faire un shoot, un metrovania like, ou même un action/rpg vus de dessus, SEER s'adapte à tout les types de jeux pour peux que les entités reçoivent une fonction « comportementale » correcte.
"Theory, it's when we know everything and nothing works. Practice, it's when everything works and nobody knows why. Here, we have put together theory and practice : Nothing works... and nobody knows why!" (Albert Einstein)