depuis peu, j'ai adapter une partie de mon travail sur purebasic, les premiers résultat me plaisent.
l'idée , est d'avoir un framework 2D simple d'utilisation avec un système de hiéarchisation ( parent / enfant ) et un accès aux shaders.
le système de hiéarchisation permet par exemple d'animer "un squellette".
L'état actuel du moteur ne permet pas de sortir encore un programme "en production", mais il pose les jalons de ce que je désire voir en PB / 2D.
Y a t'ils des gens parmis vous , qui sont intéresser par cela ? Vous pouvez téléchargé une "alpha" du moteur ici :
--- UNIQUEMENT WINDOWS X86 ---
https://cdn.discordapp.com/attachments/ ... stable.rar
Le moteur est une dll avec un .lib pour l'import & le .pbi
Le moteur est compatible Linux / Mac , je n'utilise pas d'api spécifique au OS , il utilise SFML pour l'affichage, ce n'est pas un "bête" portage de fonctions
il y a bien plus dans le moteur , gestion avancée des resources , système parent / enfant , compression & encryption des assets , input / action manager , etc...
A court terme , le moteur aura de nouvelles features :
- Quadtree interne pour gestion de collision.
- GameStateManager pour l'organisation de votre code , vous allez voir, ca va simplifier vos créations de jeu / application et clarifier votre code.
- Support du joystick dans InputAction
- Ajout du son
- Ajout des cameras 2D
- Documentation auto générée à partir du code.
à plus long terme :
- Sauvegarde et chargement des noeuds de scenes
- Ajout de box2D pour la physique
- Tilemap & autotiling
- Réplication de noeud à travers le réseau
- implémentation de imgui
A très court terme :
- Meilleur gestion de l'écran , possibilité de switch plein écran / mode fenetré
- Amélioration des "Texture"
- Amélioration des "Shader"
- Amélioration des "Sprite"
- Amélioration des "Text2D"
Ce qui me plait dans le moteur :
- Chargement asynchrone des ressources
Les ressource ce chargent dans un thread séparé , le moteur ne bloque pas sur de long loading.
il est possible de récupéré l'état du chargement en s'abonnant aux messages du moteur. ( voir 03-SimpleSprite.pb )
et de faire de beau écran de loading.
- Pas de gestion ( clavier / souris ) à l'ancienne, ici , on créer "des actions" , inspiré du Godot Engine , on créer simplement des actions :
CreateAction("MoveForward")
BindAction("MoveForward",#E2D_KEYBOARD_UP)
BindAction("MoveForward",#E2D_KEYBOARD_Z)
BindAction("MoveForward",#E2D_JOY_AXIS_Y, 1.0) <- le joystick n'est pas encore supporté.
les 3 touches , lorsqu'elle seront appuyer gérérons l'action "MoveForward"
If Action_pressed("MoveForward")
MoveMyHeroForward()
Endif
- Pas de gestion de résolution de l'écran. Le moteur créer un écran à la taille de celle de l'utilisateur quoi qu'il arrive.
il est possible de changer la résolution interne du moteur ( le moteur ne rend rien à l'écran directement , il passe par une texture intémédiaire pour le rendu )
En l'état actuel , cette partie est encore à améllioré.
Il est aussi possible d'embarqué l'écran dans une fenetre PB , ou dans n'importe quel gadget , même un bouton... l'idéal étant le Canvas , car il renvois les events
clavier au moteur contrairement à un container par exemple.
Il est possible d'embarqué plusieurs écrans dans différents gadget.
Désolé pour le pavé , merci de m'avoir lu, pour ceux que cela intéresse , faite vous connaitre , car si il n'y a personne , je n'irais pas plus loin.
Merci.