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: 1380 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 ··· 7, 8, 9, 10, 11, 12 Suivante
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 13/01/2022 19:19 | #


T'as fait ça comment ???
Farhi Hors ligne Membre Points: 1380 Défis: 0 Message

Citer : Posté le 13/01/2022 19:26 | #


Gladosse a écrit :
pour le systeme de 3d un systeme de polygones c'est pas trop a calculer pour une calto?

ça dépend du nombre d'élément à afficher ainsi que la distance de la camera à l'objet.
Plus l'objet est loin, plus il est petit et moins il y a de calcule.

Ninestars a écrit :
T'as fait ça comment ???

Comme Particule est en C++, j'ai adapté certaines certaines partie du moteur avec un patch avec des librairies comme SFML pour l'affichage, puis Visual Studio le compile et c'est tout.
(On peut aussi changer la taille de la fenêtre et qui respecte les dimensions de la calculatrice)
"La créativité est contagieuse faites la tourner"
Albert Einstein
Lephenixnoir En ligne Administrateur Points: 24639 Défis: 170 Message

Citer : Posté le 13/01/2022 21:40 | #


pour le systeme de 3d un systeme de polygones c'est pas trop a calculer pour une calto?

Je sais pas trop ce que tu veux dire par polygones. Dans ce post c'est des triangles. Oui c'est assez intensif, tu peux d'ailleurs voir la durée des frames varier sur la vidéo selon les cas plus ou moins favorables (0:23 vs 0:50 par exemple).

Ce qui est clair c'est que c'est difficile, mais c'est pas si loin que ça du possible dans les cas simples, donc savoir exactement où est la frontière et qu'est-ce qu'on arrive à faire sous quelles conditions d'overclock est une question subtile, et rien qu'à la formuler j'ai envie de coder des tests moi aussi tant c'est passionnant. x)

Note aussi que "une calto" c'est un peu vague, si tu prends une Graph mono c'est complètement impossible, si tu prends un TI-Nspire CX t'as bien assez de puissance. La gamme est vraiment large
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Farhi Hors ligne Membre Points: 1380 Défis: 0 Message

Citer : Posté le 18/01/2022 00:47 | #


j'ai réussi à convertir une couleur RGB en Hex avec
#define rgb(r, g, b) ((r << 11) | (g << 5) | b)
mais j'arrive pas à faire le processus inverse c'est à dire Hex to RBG en récupérant le pixel avec gint_vram[index]
"La créativité est contagieuse faites la tourner"
Albert Einstein
Slyvtt En ligne Maître du Puzzle Points: 2405 Défis: 17 Message

Citer : Posté le 18/01/2022 08:01 | #


Farhi a écrit :
j'ai réussi à convertir une couleur RGB en Hex avec
#define rgb(r, g, b) ((r << 11) | (g << 5) | b)
mais j'arrive pas à faire le processus inverse c'est à dire Hex to RBG en récupérant le pixel avec gint_vram[index]


C'est un peu plus complexe, il faut passer par des masques pour récupérer chaque composante puis traiter chaque composante individuellement:

              
uint_16t color =  gint_vram[ index ];
uint8_t R = (((color >> 11 ) & 0b11111 ) << 3);
uint8_t G = (((color >> 5) & 0b111111) << 2);
uint8_t B = ((color & 0b11111) << 3);


tu obtiens alors R, G et B entre 0..255 ... enfin pas tout à fait, car :
- R et B seront au max entre 0b00000000 et 0b11111000
- et G sera entre 0b00000000 et 0b11111100
Les derniers 3ou2 bits étant perdu du fait du passage à un moment en RGB565 et à un pseudo retour vers du RGB888.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Lephenixnoir En ligne Administrateur Points: 24639 Défis: 170 Message

Citer : Posté le 18/01/2022 08:50 | #


Note que si tu as fait ça :

#define rgb(r, g, b) ((r << 11) | (g << 5) | b)

Alors les valeurs originales de r/g/b ne sont pas sur 8 bits, sinon g et b dépasseraient sur leurs voisins.

Pour récupérer les valeurs sur 5/6 bits, pareil que Slyvtt mais en enlevant les décalages à gauche finaux :

R = (color >> 11) & 0x1f; # R = 0..31
G = (color >> 5) & 0x3f; # G = 0..63
G = (color >> 6) & 0x1f; # ou bien G = 0..31, si ça t'arrange plus
B = color & 0x1f; # B = 0..31

Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Farhi Hors ligne Membre Points: 1380 Défis: 0 Message

Citer : Posté le 18/01/2022 13:51 | #


Ok merci !
Mais du coup, ma fonction rgb est fausse ?
"La créativité est contagieuse faites la tourner"
Albert Einstein
Lephenixnoir En ligne Administrateur Points: 24639 Défis: 170 Message

Citer : Posté le 18/01/2022 13:55 | #


Ta fonction RGB est correcte si et seulement si ton R vaut 0..31, ton G vaut 0..63 et ton B vaut 0..31.

Si chacun vaut entre 0 et 31, tu peux utiliser la macro C_RGB(R, G, B) de gint ou reprendre sa définition :

#define C_RGB(r,g,b) (((r) << 11) | ((g) << 6) | (b))

Si chacun vaut entre 0 et 255, alors il faut masquer quelques bits :

color = ((R & 0xf8) << 8) | ((G & 0xfc) << 3) | ((R & 0xf8) >> 3);

Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Slyvtt En ligne Maître du Puzzle Points: 2405 Défis: 17 Message

Citer : Posté le 18/01/2022 14:00 | #


Farhi a écrit :
Ok merci !
Mais du coup, ma fonction rgb est fausse ?


pas forcément,
si tu as chacune des composantes R,G, B qui peut être sur le range 0..255, alors oui tu as un problème "d'écrasement" de bits.

Il te faudrait alors faire
#define rgb(r, g, b) (((r >> 3) << 11) | ((g >> 2) << 5) | (b >> 3))


par contre si R varie entre 0 et 31 ainsi que B et si G varie entre 0..63, alors c'est bon.

Je te conseille d'etre par convention en RGB entre 0..255 et de faire le décalage à droite de ma formule, sinon tu vas passer ton temps à te gratter la tete pour savoir entre quoi et quoi ca varie.

Sly

Ajouté le 18/01/2022 à 14:01 :
Nos réponses se sont croisées ;-)
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Farhi Hors ligne Membre Points: 1380 Défis: 0 Message

Citer : Posté le 18/01/2022 16:10 | #


Ok parce que en effet je veux que les valeurs soit entre 0 et 255 donc c'est cette fonction qu'il faut :
((R & 0xf8) << 8) | ((G & 0xfc) << 3) | ((R & 0xf8) >> 3)


Mais du coup pour Hexa en RBG avec les valeur qui sont entre 0 et 255 ?
"La créativité est contagieuse faites la tourner"
Albert Einstein
Lephenixnoir En ligne Administrateur Points: 24639 Défis: 170 Message

Citer : Posté le 18/01/2022 16:16 | #


Pour re-séparer une couleur 16-bit en trois composantes RGB entre 0 et 255, utilise le premier code de Slyvtt.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Farhi Hors ligne Membre Points: 1380 Défis: 0 Message

Citer : Posté le 18/01/2022 23:58 | #


Ok merci beaucoup !
"La créativité est contagieuse faites la tourner"
Albert Einstein
Mokona59 Hors ligne Membre Points: 2 Défis: 0 Message

Citer : Posté le 30/01/2022 19:24 | # | Fichier joint


Euh...
(Veuillez voir l'image ci-jointe)
Hello world
Farhi Hors ligne Membre Points: 1380 Défis: 0 Message

Citer : Posté le 30/01/2022 20:08 | #


Je sais, c'est un faux positif.
En fait c'est à cause du compilateur "Py2exe" qui convertit un .py et exécutable windows, il le convertit mal et du coup les antivirus s'affolent mais en réalité il n'y a rien. C'est un problème récurent avec Py2exe, tu peux le vérifier par toi même en cherchant sur internet.
Dans le pire des cas même si tu me crois pas, tu as les fichiers sources. Il te suffit de d'installer Python et tout le tralala.
"La créativité est contagieuse faites la tourner"
Albert Einstein
Inikiwi Hors ligne Membre Points: 594 Défis: 8 Message

Citer : Posté le 31/01/2022 21:40 | #


Quelles sont tes sources pour faire de la 3d?
Je veux faire du rendu en fil de fer.
9 polygones par frame (ou 15).
20 frames par secondes.
J'ai commencé un gta like plutôt avancé.
Mais pour le rendu de la map je veux me tourner vers de la 3d (comme gta 1).
Farhi Hors ligne Membre Points: 1380 Défis: 0 Message

Citer : Posté le 02/02/2022 15:31 | #


Les sources pour la 3D ne sont pas encore ajouté à Particule, elle va arriver progressivement car ça inclus de rendre compatible la 2D déjà présente avec la futur 3D.
Sinon si tu veux le faire de ton côté sans Particule, je me suis basé des sources de ce projet : lien du projet

Ajouté le 02/02/2022 à 15:36 :
Sinon pour information, je vais faire une petite pose sur les projets (Particule, isocraft, Minecraft story Mode, Mario Bros).
Comme certains projets dépendent de Particule et que je suis en train de faire la migration du nouveau système de script pour Particule, ces projets ne pourront pas avancer avant la migration.
Donc ne soyez pas étonné si vous voyez rien de nouveau avant un certains temps.
"La créativité est contagieuse faites la tourner"
Albert Einstein
Validuser Hors ligne Membre Points: 508 Défis: 1 Message

Citer : Posté le 07/04/2023 00:37 | #


Avec cette outil on peut faire que des jeux couleurs ?
Votre développeur favori
Je suis en train de travailler sur TD'PC : un Tower Defense sur G35+EII (Bien sûr que oui je travaille dessus )
Ne pas cliquer
Mtn que tu à cliqué tu est obligé de tout installer
Mb88 Hors ligne Rédacteur Points: 1213 Défis: 3 Message

Citer : Posté le 07/04/2023 08:41 | #


Je crois, mais d'ailleurs pourquoi fahri n'a pas fait de repo git pour ce projet ?
EDIT :
Ah si, il y en a une https://github.com/leofarhi/Particule-Casio mais elle n'est pas dans le post principal.
Farhi Hors ligne Membre Points: 1380 Défis: 0 Message

Citer : Posté le 07/04/2023 17:17 | #


Validuser a écrit :
Avec cette outil on peut faire que des jeux couleurs ?

En effet mais cela fait un moment que je ne l'ai pas mis à jours donc il se peut qu'il soit un peu instable.
Faudrait que je le refasses en C# au moins comme ça il sera potentiellement moins buggé est plus propre, mais j'ai pas le temps en ce moment malheureusement.
"La créativité est contagieuse faites la tourner"
Albert Einstein
M.machine Hors ligne Membre Points: 74 Défis: 1 Message

Citer : Posté le 17/07/2023 16:25 | #


ça a l'aire extra, dès que je peut, je l'installe !
Farhi Hors ligne Membre Points: 1380 Défis: 0 Message

Citer : Posté le 20/07/2023 00:28 | #


Merci mais honnêtement la version actuelle de ce moteur n'est pas top (en tout cas elle est plutôt buggé et pas finie surtout).
Je comptes le refaire un jour mais avec le système multiplateforme et en incluant aussi mon nouveau moteur 3D mais ça ne sera pour tout de suite, car déjà faut que je finisses tout mes projet en cours
Mais tu peux toujours essayé mais je ne garanti rien
"La créativité est contagieuse faites la tourner"
Albert Einstein
Précédente 1, 2, 3 ··· 7, 8, 9, 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 94 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