Engine2D

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Engine2D

Message par G-Rom »

Bonjour à tous, ca fait quelque temps que je bosse en solo sur un petit moteur 2D sans prétention en c++ , j'ai du commencer en 2014...
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.
Dernière modification par G-Rom le sam. 20/juil./2019 18:24, modifié 2 fois.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Engine2D

Message par falsam »

Bonjour G-Rom

OpenAL32.dll introuvable au lancement du premier exemple.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Engine2D

Message par falsam »

Si j'ai bien compris, l'utilisateur devra installer cette dll

https://www.openal.org/downloads/ - OpenAL 1.1 Windows Installer (zip)

Je n'utiliserais pas d'autant plus que la dernière version d'OpenAL n'est pas de toute première jeunesse (Version 1.1 Published June 2005)
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: Engine2D

Message par G-Rom »

OpenAL32.dll introuvable au lancement du premier exemple.
Petite coquille de ma part , je vais viré cette dépendance ou faire un lien statique.
Pour ta question que je ne vois plus, oui la version x64 sera dispo sur toute les plateforme auquel j'ai accès pour compilé , linux & windows.
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: Engine2D

Message par G-Rom »

Je viens de me renseigner
Je n'utiliserais pas d'autant plus que la dernière version d'OpenAL n'est pas de toute première jeunesse (Version 1.1 Published June 2005)
OpenAL n'est qu'une spécification , OpenAl soft est l'implémentation : https://github.com/kcat/openal-soft , la dernière màj date d'il y a qq heures.
Concernant la dll , je la distribuerais avec le moteur, la licence m'interdit de la linké statiquement ( PB le fait illégalement d'ailleurs avec Ogre je crois, je ne suis pas sur... )
Voilà, donc une dll de trop pour toi ;)
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Engine2D

Message par Shadow »

Moi ça m’intéresse :)
Merci.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Engine2D

Message par Ar-S »

J'ai manqué de ne pas la télécharger quand j'ai vu "--- UNIQUEMENT WINDOWS X86 ---"
Puis je me suis dit : Il a tout de même du vouloir dire "--- UNIQUEMENT PB X86 ou "--- UNIQUEMENT PB X86 sous WINDOWS ---"
J'ai bien fait :D

Super programme ça pour donner un coup de fouet à la 2D de PB.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: Engine2D

Message par G-Rom »

Merci Ar-s , oui , pour le moment , je ne compile pas 50 milles programme en même temps , donc effectivement , PB X86 pour le moment , par la suite
je pense faire une UserLib et distribuer en plus des sources c++ , les outils qui m'auront permis de faire la doc & l'userlib.
Mesa
Messages : 1097
Inscription : mer. 14/sept./2011 16:59

Re: Engine2D

Message par Mesa »

Oui, moi aussi ça m'interesse.

Quel boulot ! Woah.

En effet, ce moteur 2D comblerait un des points faibles de PB.

Bravo.

M.
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: Engine2D

Message par G-Rom »

Merci Mesa.

Mise à jour de l'archive pour pouvoir tester.

- Ajout du début du son.
- Ajout exemples avec shader glsl.

Veuillez noté aussi que les commandes PB_ disparaitrons en vue d'une userlib PB.
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Engine2D

Message par Ollivier »

G-Rom a écrit :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.
Ton pavé est super ! Tu devrais, si c'est possible, y insérer deux illustrations pour situer le SFML du matériel au soft, et, aussi, pour montrer l'ensemble des périphériques que ton soft offre aux utilisateurs.

Ça fait effectivement 5 ans, que tu as amorcé le thème : à l'époque, le SFML était extrêmement moins répandu. C'était une belle intuition de ta part.
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: Engine2D

Message par G-Rom »

Ollivier a écrit :
G-Rom a écrit :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.
Ton pavé est super ! Tu devrais, si c'est possible, y insérer deux illustrations pour situer le SFML du matériel au soft, et, aussi, pour montrer l'ensemble des périphériques que ton soft offre aux utilisateurs.

Ça fait effectivement 5 ans, que tu as amorcé le thème : à l'époque, le SFML était extrêmement moins répandu. C'était une belle intuition de ta part.
Merci Ollivier, pour les illustrations, je verrais cela plus tard, le moteur ne tourne pas autour de la SFML , d'ailleurs , je pourrais m'en passé ( à l'origine le moteur tourne avec glfw3 & opengl ) , mais je ne voulais pas réinventé la roue , surtout pour le chargements des médias , ( son , image , musique ) , la SFML le faisait bien mieux que moi dans le sens ou elle avait un large choix de formats disponible.
Le moteur sera , quoi qu'il arrive open source , j'espère sortir une version "exploitable" assez rapidement sous forme d'userlib.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Engine2D

Message par Kwai chang caine »

Bien que j'y connaisse quedal, j'ai essayé ton code si des fois ça peut te rendre un service, :wink:
Et etant donné qu'avec moi la plupart des codes graphiques marchent jamais :lol:
Et puis ça me fait toujours plaisir de te parler :D

J'ai des codes qui "vibrent" sur les cotés, et qui sautent 8O
C'est le cas de PONG, HierarchieNode
Je suis sous W10 / V5.70 X86

En tout cas merci pour le travail et le futur partage open source 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: Engine2D

Message par G-Rom »

Kwai chang caine a écrit :Bien que j'y connaisse quedal, j'ai essayé ton code si des fois ça peut te rendre un service, :wink:
Et etant donné qu'avec moi la plupart des codes graphiques marchent jamais :lol:
Et puis ça me fait toujours plaisir de te parler :D

J'ai des codes qui "vibrent" sur les cotés, et qui sautent 8O
C'est le cas de PONG, HierarchieNode
Je suis sous W10 / V5.70 X86

En tout cas merci pour le travail et le futur partage open source 8)

Salut KCC, qui vibrent ? tu vois bien quelque chose ? est ce que cela fait effet "vieille tv" ? si oui, c'est le shader qui fait cela, c'est voulu.
La prochaine màj va apporté d'autres fonctions , mon post du haut va grandement évolué dans les prochains jour.

Pour faire simple KCC, ce moteur , permettra à moyen terme d'avoir des sprites "amélioré" , c'est à dire que tu pourras avoir un sprite à l'écran ( par exemple , le corps d'un personnage ) et de "collé" des bras des jambes , etc...
quand tu bouges le corps , tout bouge sans que tu n'est rien à faire de plus qu'a les coller :
un peu dans ce genre là :
Image

Autres les sprites, tu pourras coller des sons , du texte , des émetteurs de particules, ou tu veut, imagine un tracteur 2D , tu pourras facilement mettre un émetteur de particule de fumée sur son pot d’échappement, la fumée suivra indubitablement le pot d’échappement , peu la position , rotation , l'échelle du tracteur...

Je vais aussi intégré imgui , une UI simple mais efficace pour faire des tools :
Image
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Engine2D

Message par Shadow »

La vache, ça à l'air trop ouf se que tu fais 8O
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Répondre