Le LionEngine est un moteur de jeu spécialement développé à l'occasion du projet Lionheart Remake pour une utilisation facile avec Java. Le moteur se présente sous la forme d'une librairie au format JAR (accompagnée de sa javadoc), qui peut donc s'inclure dans n'importe quel projet; soit pour n'utiliser que des classes utilitaires, soit pour directement implémenter et hériter d'un squelette de jeu (incluant la gestion du frame rate, l'extrapolation, les entrées sorties...).
Faisant appel aux librairies internes de Java 6, il est spécialement orienté 2D (aucune gestion 3D pour le moment), et propose donc un ensemble de fonctions dédiées à la gestion des ressources 2D (images, sprites, animations, tiles...). Les entrées sorties sont aussi au programme, avec une récupération facile des touches du clavier, du mouvement de la souris... La gestion de fichiers sonores est aussi disponible (de base WAV et MIDI, ainsi que d'autres formats via des plugins, comme SC68 et OGG). Les formats fenêtré, plein écran et applet sont totalement supportés, avec contrôle du frame rate.
Depuis la version 6, le moteur supporte également Android 1.5 (API 3). La seule modification à effectuer réside dans le gameplay, étant donné que la notion de clavier et souris sont différent sous Android. Tout le reste est parfaitement compatible et ne nécessite aucun changement.
Depuis la version 7, un éditeur abstrait est inclus afin de faciliter la création d'éditeur de niveaux dédié pour votre jeu. Il est également possible de l'utiliser tel quel sans aucun ajout, simplement en important les sources compilées de votre jeux !
Dans sa version actuelle, le moteur facilite le développement des jeux de type Plateforme, Stratégie, Shoot'em Up..., et propose également un support dans le cadre de jeux multijoueurs.
Des slides de présentation sont également disponibles ici: Slides
- Initialisation simple, avec contrôle de version, configuration d'écran et répertoire des ressources
- Contrôle de l'extrapolation (vitesse indépendante de la machine)
- Filtrages avancés (Bilinéaire, HQ2X, HQ3X)
- Contrôle de séquence (intro, menu, jeu, crédits...)
- Gestion des ressources facilité (relatif à une racine, sans se soucier du séparateur)
- Images avancées (sprite, sprite animé, sprite à base de tile, police d'écriture à base d'image, parallaxe)
- Entrées / Sorties (binaire & lecture & écriture XML)
- Classes utilitaires (Nombres aléatoires, Conversions, Maths, Fichiers...)
- Contrôle de la verbosité
- Implémentation du moteur en utilisant AWT du JDK 6
- Implémentation du moteur en utilisant SWT 3.5.1
- Implémentation du moteur en utilisant Android 1.5 (API 3)
- Contrôle de la camera (vue et mouvement)
- Curseur (synchronisé ou non sur le pointeur système)
- Package du Background (pour une composition de fond facile)
- Package pour les map à base de tile (support minimap, fonctions de sauvegarde & chargement natives)
- Système de collision ray cast
- Support de l'effet raster bar
- Implémentation du pathfinding A Star (A*)
- Extracteur de Tile (génère une tilesheet depuis une image de level rip)
- Convertisseur de Level rip (génère un niveau depuis une tilesheet et une image de level rip)
- Base d'objet de jeu (support de configuration XML externe, système de trait)
- Système de fabrique d'objet générique (crée une instance d'objet depuis un simple fichier de configuration XML)
- Système de gestionnaire d'objets (gère leur mise à jour, affichage, et obtention)
- Système de Trait extensible pour composer les caractéristiques de vos objets sans complexité de code
- Transformable (taille et translation)
- Body (gestion de la gravité)
- Launchable (système de lançeur et projectile)
- Rasterable (effet raster bar appliqué à un objet)
- Producible (capacité à produire des objets)
- Collidable (gestion des collisions)
- ...
- Serveur & Client
- Messages réseaux personnalisables
- Système de t'chat intégré
- Support du format de son Wav
- Support du format de musique Midi
- Support du format de musique Sc68 Atari
- Support du format de musique LDS
- Éditeur complet pouvant être utilisé par n'importe quel projet dans le cadre d'édition de niveaux
- Peut être complété pour réaliser des choses plus spécifiques
Lire la suite: Installation