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):
Featurable
: Minimalist object representation with an unique ID, configurable, and handlableCamera
: 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 axisHandler
: Can handle an object list, in order to update & render them easily
![]()
Factory
: Generic game object factory from an external configuration file
map package
: Standard tile based map representation with standard tile & map implementation
- Collision system
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
BackgroundGame
: Background representation, as a background elements containerBackgroundElementRastered
: Support of RasterBar for the background
![]()
![]()
Original Effect CloudsGame
: Designed to create a simple clouds scrolling effect
![]()
![]()
Original Effect Parallax
: Designed to create a powerful parallax over a huge number of lines
![]()
![]()
Original Effect
Setup
: Contains the unique resources that can be shared by objects instancesFactory
: Create objects from their configuration file, giving the needed resources with their corresponding setup![]()
Body
: Support for gravity by simulating a massCollidable
: Support for collision detection with other collidableRasterable
: Support for RasterBar effectLaunchable
: Allows to handle the projectile system
![]()
Producible
: Allows an entity to create new entities (construct buildings, produce entities...)
![]()
- ...
- 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:
Here an example of a platform game, highlighting some of the main components:
Here an example of a strategy game, highlighting some of the main components:
Read next page: General Architecture - Network Module