Facilitez vous la création de jeux vidéo !
Dina
est un framework en Lua qui repose sur Löve2D.
Il offre de nombreuses fonctionnalités tout en laissant le contrôle au développeur.
Voici quelques unes des fonctionnalités qu'il intègre :
- la prise en charge de cartes issues de Tiled (voir "LevelManager" dans la section Outils)
- un gestionnaire de menus
- des éléments pour personnaliser l'interface utilisateur
- un gestionnaire de clavier et gamepads (avec possibilité de faire du multi-joueurs en local)
- un gestionnaire de traductions
- et bien d'autres à découvrir...
Vous trouverez des tutoriels (avec leur code source) et des exemples d'utilisation à télécharger.
Alors, n'attendez plus et lancez-vous !
N'oubliez jamais que VOUS garderez toujours le contrôle de VOTRE création !
Je serais plus qu'honoré si vous pouviez mettre un lien vers cette page dans les crédits de votre jeu.
Téléchargez Dina2021-01-17
Révolution pour la version 3.0
Cette nouvelle version est une vraie révolution au sens du code et des fonctionnalités.
Une refonte complète du code a été faite pour harmoniser le nom des fonctions.
Toutes les fonctions "publiques" commencent par une lettre minuscule comme pour Love2D.
L'initialisation du moteur a également été revue pour simplifier le chargement des modules.
Les modules ont été regroupés par thème : GUI, Controllers, Levels, Characters, etc.
De nouveaux modules ont été rajoutés :
- Thème "Controllers"
- "Keyboard" qui permet de gérer le clavier
- "Gamepad" qui permet de gérer les gamepads
- "Controller" qui permet de contrôler et dispatcher les actions (touche ou bouton appuyé)
- Thème "Characters"
- "Character" qui est la base pour un joueur ou un PNJ
- "Player" qui permet de gérer le joueur (permet de faire du multijoueur en local)
Il reste encore beaucoup de problèmes à corriger dans ces nouveaux modules et, surtout, beaucoup de documentation à rédiger...
Vous pouvez télécharger la nouvelle version ici : Nouvelle version
2020-10-15
Version 2.0.4 - Documentation
Cette version n'a que peu évolué par rapport à la version 2.0.3.
Le plus gros du travail a été de documenter la grande majorité des fonctions.
Une fois ce travail achevé, je pourrais me consacrer à rédiger des tutoriels.
J'ai en prévision de faire un tutoriel sur chacun des templates en présentant l'ensemble des possibilités offertes.
Toutefois, c'est un travail long et fastidieux qui m'empêche de faire évoluer le moteur. Mais cela est plus que nécessaire pour favoriser son utilisation.
Mais avant de faire les tutoriels, je dois effectuer des corrections sur le site pour créer un CMS dédié aux tutoriels.
Cela me permettra de pouvoir vous offrir plus rapidement le contenu.
Vous pouvez télécharger la nouvelle version ici : Nouvelle version
2020-09-27
Version 2.0.3
Cette version inclut :
- une nouvelle fonctionnalité
- la correction d'un bug majeur.
Nouvelle fonctionnalité
Durant certains de mes tests, j'ai eu besoin de pouvoir visualiser l'ensemble des données d'un objet de la GUI (bouton, panneau, etc.). Pour cela, je rajoutais une grande quantité de print que je devais retirer dès que mon débogage était terminé.
Après plusieurs recherches, j'ai réussi à permettre d'afficher l'ensemble des données simples (j'ai exclu les fonctions et les tables de l'affichage).
Maintenant, pour avoir les données d'un template ou d'un manager, il vous suffit de faire :
local Dina = require("Dina")
local Panel = Dina("Panel", 10, 10, 100, 50, Colors.WHITE)
print(Panel)
Et vous obtiendrez les informations suivantes dans la console :
Dina Panel (2.0.3)
https://dina.lacombedominique.com/documentation/templates/panel/
thickness : 1
x : 10
y : 10
z : 0
width : 100
hover : false
height : 50
visible : true
Correction d'un bug majeur
Lors de la rédaction du tutoriel sur le gestionnaire de carte LevelManager, je suis tombé sur un bug lors de la présentation des objets. Lorsqu'on effectuait une rotation sur ceux-ci, leurs coordonnées étaient dissociées de leur affichage.
Avant | Après |
---|---|
Vous pouvez télécharger la nouvelle version ici : Nouvelle version
2020-05-18
Version 2.0.2
Lors du développement de mon nouveau jeu, j'ai détecté une grosse anomalie dans le module LevelManager. Les rotations des calques étaient mal calculées et généraient des problèmes lors de l'affichage. En plus d'avoir une erreur dans les rotations, je me suis aperçu que les images étaient systématiquement dessinées sur un fond complètement noir.
Cette nouvelle version contient les corrections adéquates. Des tests ont été effectués sur des tiles plus grande, plus petites et de même largeur que les tuiles de la map sans rencontrer la moindre erreur d'affichage.
Avant | Après |
---|---|
Vous pouvez télécharger la nouvelle version ici : Nouvelle version
2020-05-03
Version 2.0.1 - Ajout d'un LevelManager
Cette version est en cours d'élaboration durant la conception de mon jeu "Gold Digger" (disponible ici : https://asthegor.itch.io/golddigger).
Elle inclut une librairie que j'avais conçue pour un autre de mes jeux pour charger une map issue de Tiled.
Même si ce LevelManager n'inclut pas la totalité des fonctionnalités disponibles dans Tiled, les plus importantes sont déjà disponibles (listées dans le désordre) :
- Traitement des calques d'images
- Traitement des tilesets
- Traitement des calques d'objet (permet aussi de les récupérer)
- Traitement des groupes de calques (ce que la librairie officielle ne permet pas)
Je rajouterais certaines options quand j'en aurais le besoin dans un de mes jeux ou quand on me demandera de le prendre en charge.
Autre point notable
Durant mes tests sur Gold Digger, j'ai dû soumettre mon code à un "Profiler" pour contrôler les fonctions les plus consommatrices de temps.
J'ai été plus qu'agréablement surpris de voir que mon moteur était plus que performant !
Voici le profiler que j'ai utilisé : https://love2d.org/wiki/profile
Vous pouvez télécharger la nouvelle version ici : Nouvelle version
Vous pouvez télécharger les nouveaux outils ici : Outils