Le module lionengine-game est le principal module de jeu. Il contient une API haut niveau complète, conçue pour fournir les outils essentiels à tout développement de jeux, incluant une architecture modulaire.
Voici les différents packages:
Voici une brève présentation de l'API haut niveau et de son architecture (seul les principaux outils sont présentés):
Featurable: Représentation minimaliste d'un objet avec un identifiant unique, configurable et gérableCamera: Implémentation standard d'une caméra, pouvant suivre un objetWorldGame: Conteneur de jeu standard, permettant de sauvegarder et de charger un monde facilementCursor: Représentation de la souris en jeu, synchronisée ou non sur celle du système d'exploitationTextGame: Texte pouvant être utilisé dans un axe de jeu 2D, converti automatiquement sur l'axe de l'écranHandler: Peut gérer une liste d'objet, afin de les mettre à jour et de les afficher facilement
![]()
Factory: Fabrique générique d'objet à partir d'un fichier de configuration
map package: Représentation standard d'une map à base de tile, avec une implémentation de base
- Système de collision
Comment fonctionne le processus de collision ?
![]()
Un tile est représenté par :
[X,Y](position sur la map)pattern(numéro de tilesheet)number(numéro d'image sur la tilesheet)
![]()
![]()
Tilesheet Map utilisant la tilesheet
BackgroundGame: Représentation de base de background, en tant que conteneur d'élément de fondBackgroundElementRastered: Support du RasterBar pour le background
![]()
![]()
Original Effet CloudsGame: Conçu pour créer un effet de scrolling dédié aux nuages
![]()
![]()
Original Effet Parallax: Conçu pour créer un puissant effet de parallaxe composé d'un grand nombre de lignes
![]()
![]()
Original Effet
SetupGame: Contient les ressources uniques qui peuvent êtres partagées par les différentes instances d'objetsFactory: Instancie des objets à partir de leur fichier de configuration, en fournissant les ressources nécessaires à partir de leursetupcorrespondant![]()
Body: Simule la gravité à partir d'une masseCollidable: Supporte la détection de collision avec d'autrescollidablesRasterable: Supporte l'effet RasterBarLaunchable: Permet de gérer le système de projectile
![]()
Producible: Permet à l'entité de créer de nouvelles entités (construction de bâtiments, production d'entités...)
![]()
- ...
- Tile extractor : Permet d'extraire tous les tiles uniques d'un level rip
![]()
- Level rip converter: Génère un niveau de données à partir d'un level rip et de ses tilesheets
![]()
Les ressources en rapport avec les map doivent êtres organisées comme ci-dessous afin de pouvoir gérer plusieurs themes de map :
Voici un exemple de jeu de plateforme, mettant en évidence la plupart des composants principaux :
Voici un exemple de jeu de stratégie, mettant en évidence la plupart des composants principaux :
Lire la suite: Architecture Générale - Module Réseau