AmiDARK Engine 0.9 RC1 Progress
13 sujets de 1 à 13 (sur un total de 13)
-
Salut à tous,
Bon, j’ai bien avancé sur le nouveau système de rendu que je nommerai : « Advanced Render Method » qui fonctionne maintenant *parfaitement* 🙂
J’ai aussi terminé le support de « Plugins Additionnels » (qu’on nomme souvent TPC ( Third Party Commands) ).
Cela m’a permit d’améliorer pas mal de choses dans l’AmiDARK Engine et aussi d’en optimiser quelques unes.Le rendu à l’écran se faisait auparavant avec une fonction principale dans laquelle étaient appelées les diverses fonctions de rendu (Images, Basic2D, Basic3D, Sprites, Textes, RasterFX, etc…) dans un ordre précis avec seule possibilité c’est de basculer les priorités de SPRITES Vs 3D et d’IMAGES Vs 3D.
Tout ce système fonctionnait mais n’était pas vraiment … *optimisé*…Maintenant avec la nouvelle méthode de rendu avancé, chaque module s’il est utilisé, est inclut à la compilation et, sa fonction d’initialisation demandera à l’ARM (Advanced Render Method) d’ajouter sa fonction de rendu dans la fonction principale d’affichage (Synchro à l’écran).
Cela signifie plusieurs choses :
1. Si un module n’est pas utilisé, il ne sera pas inclut à la compilation et donc, sa fonction ne sera pas incluse dans le rendu final = Réduction de la mémoire utilisée sur disque et en mémoire RAM + Optimisation permettant de gagner un petit peu de vitesse dans le rafraîchissement du rendu final à l’écran.
2. De nouveaux modules/plugins peuvent être crées et avoir leur propre fonction de rendu pour s’intégrer dans le moteur de Jeu « AmiDARK Engine ».
L’ARM gère aussi les priorités. Cela signifie que l’on peut modifier la priorité d’affichage.
3. Le développeur utilisant l’AmiDARK Engine pourra lui aussi créer des fonctions de rendu supplémentaires selon ses besoins.
(Une fonction de rendu n’est pas forcément graphique)Par exemple, en ordre normal on devrait avoir 3D puis IMAGES puis SPRITES pour que la 2D s’affiche devant la 3D et que les sprites (dont le background est sauvegardé puis restauré après l’affichage à l’écran) soient dessus la 3D et les Images, mais on peux modifier cet ordre imaginons par exemple pour un jeu en 2D devant lequel on ferait bouger un objet 3D … On peux mélanger dans n’importe quel sens … Par exemple : IMAGES, 3D, SPRITES ou 3D, SPRITES, IMAGES, etc … tout est paramétrable selon le besoin … On commence avec tout cela à sortir du cadre de la « compatibilité » avec DarkBASIC Professional & DarkGDK.
Pour cela j’ai du aussi ajouter quelques fonctions internes pour les *futurs* développeurs de plugins/modules (et donc pour moi même dans le développement de l’AmiDARK Engine).
Ces fonctions ont pour but principal de permettre de basculer plus rapidement dans des modes d’affichages 2D, 3D ou CUSTOM.
Une fonction de rendu d’un module/plugin devra d’abord donc annoncer dans quel mode elle veut fonctionner :
1. Mode 2D : Cela mettra les valeurs d’OpenGL en mode permettant d’afficher des images 2D sur toute l’étendue de la fenêtre de l’application.
2. Mode 3D : Cela mettra les valeurs d’OpenGL en mode permettant d’afficher des images 3D sur toute l’étendue de la fenêtre de l’application.
3. Mode Custom : Cela mettra les valeurs d’OpenGL en valeurs initiales. Le module/Plugin pourra donc utiliser l’OpenGL pour définir ses propres propriétés de rendu.
Ces 3 modes de rendu ne tiennent pas compte des définitions de Caméra 3D du moteur. Lorsque l’on ajoute une fonction de rendu, elle ne pourra pas interférer à l’intérieur d’une autre fonction de rendu. Bien entendu des checkings ont été faits pour éviter des appels *inutiles* à l’OpenGL.Je prévois aussi des optimisations et améliorations du moteur AmiDARK Engine qui n’existent pas dans DarkBASIC Professional ni dans DarkGDK.
(genre permettre de réaliser le rendu d’1 objet par 1, d’1 sprite par 1 pour contrôler très rapidement ce que l’on veut à l’écran sans avoir à utiliser plein de « Hide Object » ou autre …)
Bien entendu tout ce que je viens de vous détailler ci-dessus n’existe pas non plus dans DarkBASIC Professional ni dans DarkGDK.Ces optimisations et améliorations ne devraient pas réduire la potentielle compatibilité et portabilité depuis DarkBASIC Professional & DarkGDK cela dit, utiliser ces nouvelles commandes rendra « incompatible » un portage d’une application développée avec l’AmiDARK Engine vers DarkBASIC Professional ou DarkGDK.
Cela dit, je pense que ces ajouts et optimisations permettront à l’AmiDARK Engine d’étendre les capacités à bien plus que des jeux (des démos 3D par exemple :p, les Demo Maker devraient apprécier).Et, il est primordial maintenant que l’AmiDARK Engine devienne réellement un moteur de création de Jeux Vidéo adapté à nos Amiga … Et celà bien au delà de la simple compatibilité avec DarkBASIC Professional & DarkGDK.
La version 0.9 devrait bientôt être disponible avec toutes ces nouveautés et probablement quelques petites surprises en plus 🙂
@+
AmiDARKUn jeu ?
Euh … Dans 10 ans à peu près … non ?
Non sérieusement, mon job principal c’est le Kit De Développement.Les jeux, espérons que des développeurs comment à en créer avant que j’ai finit le KDD 😉
Bon pour agrémenter le KDD, je rajouterai probablement des petites démonstrations de jeux (genre 1 niveau de jeu) mais je ne suis pas sûr de pouvoir créer de gros jeux complet vu que le développement du KDD est très long …Modbon alors ?
On peut tester ou pas encore ?
@Hivernaal : D’ici la fin de la semaine je pense.
Je fixe un dernier bug (l’utilisation de lumières 3D empêche l’affichage des Images (2D).
Une fois fixé, je prépare la nouvelle archive pour AmigaOS4 & MorphOS et j’envoie le tout sur le net 🙂
Donc en théorie d’ici à la fin de la semaine si tout va bien.
(car en ce moment mon cou et mon crâne me font un peu souffrir)
@Tarzin : Merci 🙂ok mec merci
Ca y est !
J’ai enfin fixé les 2 bugs (de m****) que j’avais concernant l’affichage 2D & 3D.
Le nouveau système de gestion par « liste de rendus » est pleinement fonctionnel et utilisé par les modules Basic3D, Image et Sprites.
(il faudra que je change le module Basic2D pour être inclut dans cette liste de rendu.
Le nouveau système permettant d’intégrer des plugins dans les initialisations et dans le rendu est lui aussi pleinement fonctionnel.
Cela signifie que je suis en train de préparer la release 0.9
Cela dit, cette release ne sera officielle qu’après la Pianeta Amiga car, un contact qui y sera présent pourra faire démonstration de cette nouvelle version (en préversion).La documentation concernant les 2 modes de créations de plugins ne sera peut-être pas terminée mais elle le sera pour la version 1.0 finale
Donc, début semaine prochaine sur http://www.os4depot.net apparaîtra la version 0.9 de l’AmiDARK (2D) Engine.
@+
AmiDARK
http://www.amidark-engine.com
13 sujets de 1 à 13 (sur un total de 13)
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › AmiDARK Engine 0.9 RC1 Progress