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