Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » ParticuleEngine : l'éditeur de jeu pour calculatrice
Farhi Hors ligne Membre Points: 1301 Défis: 0 Message

ParticuleEngine : l'éditeur de jeu pour calculatrice

Posté le 27/05/2020 21:50

Vos retours seront cruciaux pour son amélioration,
merci d'avance pour une éventuelle suggestion de votre part.


Lien de serveur discord de ParticuleEngine : https://discord.gg/pQgRuEtdRA

Particule est un moteur de jeu pour calculatrice casio inspiré du logiciel Unity.
Il est capable d'importer de nombreux formats d'image et il peut transformer une image en couleur en .bmp compatible pour la casio.
On peut faire toutes sortes de jeux (RPG, aventure, arcade, plateforme, MMO, etc.).
Vous avez la possibilité de créer vos propres images et lignes de code (une documentation détaillée sera bientôt mise à disposition)
Pour l'instant il est possible de créer des jeux uniquement en 2D.

Je tiens à remercier les personnes suivantes pour m'avoir aidé: Lightmare, Sentaro21, Lephenixnoir, Zezombye, Kbd2
Des vidéos explicatives sont jointes.
Bon amusement !

Liens de téléchargement : Particule
Lien des vidéos Tuto : Playlist
Signaler un bug

Anciennes versions
Cliquer pour enrouler

Download : https://drive.google.com/drive/folders/1W3IiTccQw9a7GLTil6_Kff9-saHyjr5B?usp=sharing

Version 1.1 :


Vidéo présentant la création d'un Component (Partie 1):


Version 2.0 Beta




Précédente 1, 2, 3, 4, 5, 6 ··· 10, 11, 12 Suivante
Farhi Hors ligne Membre Points: 1301 Défis: 0 Message

Citer : Posté le 22/01/2021 14:59 | #


Pas encore, elle possède pas mal de bug que je dois corriger et je dois rajouter des blocks dans Scratch pour pouvoir programmer un minimum de chose dessus
"La créativité est contagieuse faites la tourner"
Albert Einstein
Potter360 En ligne Rédacteur Points: 1218 Défis: 2 Message

Citer : Posté le 22/01/2021 14:59 | #


Ok, j'ai hâte !
Globalement, coder. Mal, mais coder.
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 22/01/2021 15:52 | #


tu sera bientôt en concurrence avec moi, j'ai codé la première version de mon moteur de jeu qui fonctionne avec un système d'objets configurables

par contre ca va être la galère pour codé une interface pour les personnes qui aime pas le code
pensés suicidaires
   90%
Farhi Hors ligne Membre Points: 1301 Défis: 0 Message

Citer : Posté le 22/01/2021 16:28 | #


Mon but n'est pas d'être en concurrence mais d'essayer de proposer un éditeur de jeu facile d'utilisation
"La créativité est contagieuse faites la tourner"
Albert Einstein
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 22/01/2021 16:31 | #


Fight! Fight! Fight!
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 22/01/2021 21:56 | #


la semaine prochaine je me lace a qt5

Ajouté le 22/01/2021 à 21:56 :
la semaine prochaine je me lace a qt5
pensés suicidaires
   90%
Farhi Hors ligne Membre Points: 1301 Défis: 0 Message

Citer : Posté le 23/01/2021 00:15 | #


La version 2.0 beta de Particule sortira normalement entre aujourd'hui et demain

Ajouté le 23/01/2021 à 02:54 :
Update !

La version 2.0 Beta est dorénavant disponible ainsi qu'une vidéo (la quatrième se trouvant sur le topic principal) rapide de présentation.
Vous pouvez me poser des questions si besoin.
Attention, cette version est instable et peut contenir quelques bugs, faites-les-moi savoir si vous en rencontrez.
"La créativité est contagieuse faites la tourner"
Albert Einstein
Potter360 En ligne Rédacteur Points: 1218 Défis: 2 Message

Citer : Posté le 23/01/2021 09:19 | #


Wow, super !
Ça a l'air énorme selon la vidéo !
Je teste ça dès tout à l'heure !

Ajouté le 23/01/2021 à 12:58 :
Avec quel language as tu codé ça ? C'est super !
À l'occasion, sais tu si tu prévois de mettre tes sources sur Github ?
Globalement, coder. Mal, mais coder.
Farhi Hors ligne Membre Points: 1301 Défis: 0 Message

Citer : Posté le 23/01/2021 13:03 | #


Merci
Il a été codé en python et les sources seront disponible une fois la 2.0 terminé
"La créativité est contagieuse faites la tourner"
Albert Einstein
Potter360 En ligne Rédacteur Points: 1218 Défis: 2 Message

Citer : Posté le 23/01/2021 13:14 | #


Ok cool, merci
(Et bravo )
Globalement, coder. Mal, mais coder.
Farhi Hors ligne Membre Points: 1301 Défis: 0 Message

Citer : Posté le 23/01/2021 13:16 | #


Merci, j'essayerai de faire une documentation aussi si j'ai le temps

Ajouté le 25/03/2021 à 11:16 :
Bonjour à tous !
Cela fait un moment que je n'ai pas donné de nouvelles à propos de particule. Sachez que je bosse sur la réécriture du code car avant c'était un bordel monstre dans le code source. Cette fois-ci, j'ai faits en sorte de calquer Unity au point de vue architecture et ça devient beaucoup plus lisible.
En ce qui concerne de l'affichage, elle a aussi été refaite, voici un exemple :


Mais ce n'est pas terminé, après réflexion je me suis dit que coder dans un tout petit rectangle (pour faire du Scratch) n'était pas très pratique, c'est pourquoi que la partie programmation sera à part donc voici l'annoncement d'un second projet "Visual Scratch" !

Qu'est-ce que Visual Scratch ?
Visual Scratch est une reprise de Visual Studio conçu pour développer du code facilement, il sera conçu pour Particule mais pourra être aussi utilisé pour d'autre projets à l'avenir.
Ainsi, en séparant la partie Scratch de Particule, nous avons un gain en lisibilité.
Mais ce n'est pas fini !
Pour ceux qui aiment coder avec texte brut et bah on pourra aussi, ça sera une syntaxe particulière mais relativement simple.
Voilà
Je rappelle que ce que je viens de présenter n'est pas encore disponible, c'est juste pour présenter l'avancée du projet.
"La créativité est contagieuse faites la tourner"
Albert Einstein
Farhi Hors ligne Membre Points: 1301 Défis: 0 Message

Citer : Posté le 15/05/2021 19:48 | # | Fichier joint


Bonjour tout le monde !
Ca fait un moment qu'on n'a pas parlé de Particule...
Et bah sachez que le système de base est enfin Terminé !
Malgré tout, le logiciel n'est pas encore disponible, il le sera d'ici Juillet-Août car il n'y a pas suffisamment de Component qui sont implémentés (comme par exemple les collisions, la gravité, etc...)
Idem pour pour Visual Scratch qui est l'éditeur de script, il n'y a pas suffisamment de blocks.
Et pour finir il reste encore quelques petits bugs.
Mais pour vous faire patienter voici ce que m'a généré le logiciel, vous avez donc un aperçu du logiciel qui vous attend.
Vous avez donc une petite Demo avec son code source.
Si avez des remarques sur le code source n'hésitez pas à m'en faire part.
(Une partie du PlayerController a dû être codée à la main car il manque des blocks pour le faire)





Ajouté le 14/11/2021 à 16:51 :
De la 3D dans Particule ???
Oui et Non, c'est de la 2,5D.
C'est à dire qu'on peut se déplacer sur les trois axes (X,Y,Z) mais on ne peut pas changer l'angle de la caméra.
Son avantage est qui ne prend pas beaucoup plus de mémoire qu'un simple Sprite, faut juste lui donner la sa taille en Z. en plus de l'image.
Voilà
La prochaine version de Particule (la version 2022) sort vers fin décembre, ça sera votre cadeau de noël


Ajouté le 14/11/2021 à 16:54 :
Je sais que je repousse sans cesse la date de sortie, mais faut aussi comprendre qu'un projet pareil prend du temps.
Mais promis cette fois ci, la première version Officielle de Particule sort avant 2022
"La créativité est contagieuse faites la tourner"
Albert Einstein
Ninestars Hors ligne Membre Points: 2461 Défis: 24 Message

Citer : Posté le 14/11/2021 20:57 | #


Sypa ! J'ai l'impression de voir les premiers jours de Windmill avec ce gif !
Tu gères ça comment en interne pour étirer ta texture sur les côtés ?
Farhi Hors ligne Membre Points: 1301 Défis: 0 Message

Citer : Posté le 14/11/2021 22:39 | #


Ninestars a écrit :

Tu gères ça comment en interne pour étirer ta texture sur les côtés ?

Il n'y a pas d'étirement, c'est tout l'art de ce système
En fait, sont fonctionnement est très simple. Comme je l'ai dit c'est pas de la 3D mais une illusion.
Pour faire cet effet, la machine affiche dans un premier temps le sprite et ensuite pour donner l'illusion de profondeur, il va répliqué le sprite mais avec un décalage et ainsi de suite. Aussi simple que ça
C'est pour cette même raison qu'on ne peut pas changer l'angle de la caméra.
Cette technique est pratique car elle consomme peut de mémoire par rapport à un vrai moteur 3D.
Et bon, je me dis qu'on peut faire des trucs sympa avec cette astuce, comme un Paper Mario par exemple

Ajouté le 14/11/2021 à 22:46 :
Et là je suis en train de voir si Particule peut générer le code pour Gint aussi.
Comme j'ai jamais touché à Gint, ça risque de prendre un peu de temps

Ajouté le 18/11/2021 à 02:41 :
Une nouvelle gestion de la gravité, on peut désormais choisir comment peut se comporter la gravité (son sens et son intensité)
Elle est plus réaliste mais coûte plus cher en calcul, cette nouvelle gestion implique aussi une amélioration pour la détection de collision.
Quelques petits exemples :
Si c'est un jeu style Zelda/RPG vue de haut et bah la gravité sera nulle.
Si c'est un Mario la gravité sera de Vector2(0,1) (pour X,Y)
Si c'est un Gravity Duck et bah les valeurs pourront être ce qu'on souhaite
Petit exemple de moi qui m'amuse a changer la gravité avec les flèches directionnelles :

"La créativité est contagieuse faites la tourner"
Albert Einstein
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 18/11/2021 08:32 | #


Alors j'avoue que je ne suivais Particule que de loin, mais avec Minecraft Story Mode, tu as suffisamment piqué mon intérêt pour que je m'y intéresse de plus près.

Quelque chose que j'ai vu c'est que le framerate est assez limité (un peu comme sur le GIF ci-dessus). Sur la Graph mono il ne doit pas y avoir de problèmes de perfs a priori. Est-ce que tu penses que tu peux arranger ça ?

Pendant que j'y suis est-ce que tu peux détailler un peu le modèle entité/composant que tu utilises ? Est-ce que c'est juste calqué sur un moteur de jeu existant ou y'a des idées plus spécifiques ?
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Farhi Hors ligne Membre Points: 1301 Défis: 0 Message

Citer : Posté le 18/11/2021 15:24 | #


Alors je pense que c'est à cause du Sleep(100) que j'ai mis pour réduire la vitesse car au début de la création de Particule il n'y avait pas grand chose du coup le programme allait trop vite. Mais maintenant je vais le retirer ou le réduire je pense. Le second souci c'est les collisions et la physique des objets sur la scène car il y a plusieurs itérations pour s'assurer que les objets ne traversent pas les collisions. J'ai essayé au maximum de réduire les calculs comme par exemple les objets qui ne sont plus affichés à l'écran ne sont plus calculés, mais ça reste tout de même un coût assez élevé.

Quant au moteur du jeu c'est une reprise de la structure d'Unity 3D car je trouve qu'elle est vraiment bien faite et dont j'ai apporté ma touche personnelle pour rendre le moteur encore plus personnalisable.
On a les GameObject qui sont les objets qui sont présents sur la scène, et chaque GameObject possèdent des components qui sont en fait les scripts de l'objet. Par exemple il y a un component Caméra qui gère l'affichage, il y a le RigidBody qui gère la gravité, BoxCollider les collisions etc...
Ensuite on peut créer ses propres components avec Visual Scratch (le deuxième logiciel que j'ai créé, conçu pour Particule) qui permet de coder ce qu'on souhaite avec des blocs déjà pré-fait comme if, else, Ajouter 1 à la coordonnée X etc...
Mais si on ne trouve pas notre bonheur avec les blocs proposés on peut ajouter ses propres commandes en ligne brute et elle sera rajoutée comme si c'est un Block normal à la suite du code.
Ensuite, on peut créer ses propres variables publiques et priver, et elle sera automatiquement affichée sur particule.
C'est-à-dire que par exemple deux objets peuvent avoir les mêmes components (Scripts) mais pas les mêmes paramètres, ce qui permet de créer énormément de combinaison.
Que se soit Particule ou Visual Scratch, j'ai fait en sorte que celui qui veut tout personnaliser à sa manière puisse le faire sans forcément modifier le moteur lui-même.
J'ai fait en sorte qu'on puisse créer une distribution particulière si on le souhaite, c'est-à-dire que par exemple, il me suffirait d'un bouton pour passer du compilateur SDK Graph 75 85 95 à Gint par exemple.
Autre chose aussi je comptais rajouter un système d'installation automatique, c'est à dire que celui qui veut installer Gint, il va dans Paramètres>Installations>Gint>Installer et c'est tout. Pas des heures de souffrance à chercher comment installer Gint avec un terminal.
Particule le fera lui même.

En gros Particule en quelque mot c'est : Créé un jeu sans se casser la tête et fait pour des débutants ou les professionnels.
Par conséquent les débutant pourront utiliser des choses basiques, et les professionnels pourront créer leur propre environnement sophistiqué.

Et avec l'Asset Store, les gens pourront partager des ressources (images, codes, scenes, etc...) et il suffira d'une simple barre de recherche pour trouver son bonheur.

Sur l'aspect Technique, Particule et Visual Scratch sont entièrement faits avec Python (Tkinter) car il est facile d'importer des scripts (externe) pendant que le logiciel tourne. C'est-à-dire que si vos faites une modification d'un component sur Visual Scratch, et bah Particule mettra à jour son interface automatiquement sans avoir besoin de le relancer.

Ajouté le 18/11/2021 à 15:30 :
(Je viens de voir et c'est bien le Sleep(100) qui faisait ralentir le jeu de ouf, là c'est ultra fluide je dirais même trop fluide XD)
"La créativité est contagieuse faites la tourner"
Albert Einstein
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 18/11/2021 15:30 | #


Aaah mais oui c'est sûr qu'avec un Sleep(100) tu ne vas pas aller loin. xD

Merci beaucoup pour les détails, je suis pas hyper familier avec Unity3D donc ça aide.

Autre chose aussi je comptais rajouter un système d'installation automatique, c'est à dire que celui qui veut installer Gint, il va dans Paramètres>Installations>Gint>Installer et c'est tout. Pas des heures de souffrance à chercher comment installer Gint avec un terminal.
Particule le fera lui même.

Si c'était aussi facile je le ferais aussi comme ça

Sur l'aspect Technique, Particule et Visual Scratch sont entièrement faits avec Python (Tkinter) car il est facile d'importer des scripts (externe) pendant que le logiciel tourne. C'est-à-dire que si vos faites une modification d'un component sur Visual Scratch, et bah Particule mettra à jour son interface automatiquement sans avoir besoin de le relancer.

Alors ça c'est fort ! Kudos pour cette fonctionnalité. À quand un build Linux d'ailleurs ?
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Farhi Hors ligne Membre Points: 1301 Défis: 0 Message

Citer : Posté le 18/11/2021 15:43 | #


Lephenixnoir a écrit :
Si c'était aussi facile je le ferais aussi comme ça

C'est pour ça que je vais faire sorte que ça puisse fonctionner dans tout les cas XD (Windows pour l'instant, et Linux après)

Lephenixnoir a écrit :
À quand un build Linux d'ailleurs ?

En même temps que celui de Windows c'est à dire fin 2021, ça sera mon plus beau cadeau de noël et de nouvel ans que je pourrais vous offrir.
Avec une documentation, des vidéo Tutoriel etc...
La total en gros

J'ai oublié de précisé mais il y a aussi un Particule Hub, c'est un petit menu qui s'ouvre lors du lancement de Particule et qui permet de sélectionner le projet qu'on souhaite ouvrir (en gros ça garde en mémoire le chemin des projets) et d'autres trucs en plus.

Ajouté le 18/11/2021 à 20:06 :
Grâce au RigidBody on peut en sorte que le joueur saute plus ou moins s'il maintient le bouton enfoncé en une seule ligne :
((Rigidbody*)this->gameObject->GetComponent("Rigidbody"))->velocity->Add(0, 0.5f);


Ajouté le 19/11/2021 à 01:06 :
Voici a quoi va ressembler l'auto installateur.
Il va télécharger les ressources directement depuis Planet Casio

"La créativité est contagieuse faites la tourner"
Albert Einstein
Ninestars Hors ligne Membre Points: 2461 Défis: 24 Message

Citer : Posté le 19/11/2021 19:38 | #


Sympa
Regarde du côté des timers pour avoir des fps constants.
Là le problème c'est ton jeu va tourner plus ou moins vite en fonction de la charge de calcul sur le processeur.

Normalement, des calculs de collision 2D c'est du gâteau pour un processeur. Tu est sûr que c'est ça qui prend des perfs ?

Ajouté le 19/11/2021 à 19:39 :
Et si tu arrives à me faire installer Gint en 1 clic j'achète haha
Farhi Hors ligne Membre Points: 1301 Défis: 0 Message

Citer : Posté le 19/11/2021 19:47 | #


Ninestars a écrit :
Regarde du côté des timers pour avoir des fps constants.

Ok je vais faire ça, merci pour l'info

Ninestars a écrit :
Tu est sûr que c'est ça qui prend des perfs ?

En fait, ça dépend du nombre d'objets qu'il y a sur la scène car le Rigidbody va checker plusieurs fois les collisions pour s'assurer qu'il ne traverse pas les objets. Donc s'il n'y a qu'un seul objet qui possède Rigidbody ça va, mais si on en mets beaucoup, ça va poser problème.

Ninestars a écrit :
Et si tu arrives à me faire installer Gint en 1 clic j'achète haha

Challenge accepted !

Ajouté le 19/11/2021 à 22:24 :
Version Linux fonctionnelle héhé !

"La créativité est contagieuse faites la tourner"
Albert Einstein
Potter360 En ligne Rédacteur Points: 1218 Défis: 2 Message

Citer : Posté le 19/11/2021 23:13 | #


Mais géniaaaaaal !
Sérieux c’est trop bien j’ai trop envie que tu sortes ça tout de suite-maintenant
En vrai c’est super cool, j’ai vraiment hâte
Globalement, coder. Mal, mais coder.
Précédente 1, 2, 3, 4, 5, 6 ··· 10, 11, 12 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 109 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd