The lionengine-game module is the main game module. It contains a full high level API, designed to provide the essential tools for any game development, including a modular architecture.
Here the different packages:
Here a short overview of the high level API and its architecture (only main items are listed here):
ObjectGame: Minimalist object representation with an unique ID, configurable, and handlableCameraGame: Standard camera implementation, can follow an objectWorldGame: Standard game container, allowing to save & load a world easilyCursor: In-game mouse representation, sync or async to the OS oneTextGame: Special text that can be used in a 2D game axis, automatically converted to the screen axisHandlerObjectGame: Can handle an object list, in order to update & render them easily![]()
EffectGame: Can be used to create visual game effects
map package: Standard tile based map representation with standard tile & map implementation
- Collision system
CollisionOperation: Function that describes how to compute the collision between an entity and a tileCollisionTileCategory: Allows to group collision by area (entity center, knee, hand...)What about the collision process ?
![]()
A tile is represented by:
[X,Y](location on the map)pattern(tilesheet id)number(image id on tilesheet)
![]()
![]()
Tilesheet Map using the tilesheet
ObjectType: Interface that must be implemented by the enum type you use to represent your objects typesSetupGame: Contains the unique resources that can be shared by objects instancesFactoryGame: Create objects from their enum types, giving the needed resources with their corresponding setup![]()
ProjectileGame: Base implementation of a projectile, that can support custom movementsLauncherProjectileGame: Projectile launcher base, allowing to throw projectile straight on, or to a specific targetHandlerProjectileGame: Special handler containing all projectiles![]()
Configurable: Support for external configuration by using an XML fileBody: Support for gravity by simulating a massCollidable: Support for collision detection with other collidableRasterable: Support for RasterBar effect
- Tile extractor: Allows to extract all unique tiles from a level rip
![]()
- Level rip converter: Generates a level data from a level rip and its tile sheet
![]()
Game resources must be organized as this in order to handle different themes of your map tile:
Read next page: General Architecture - Platform Module