Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Discussions


Index du Forum » Discussions » Méthode de compression de niveaux
Ray Hors ligne Membre Points: 1338 Défis: 18 Message

Méthode de compression de niveaux

Posté le 04/11/2013 17:51

Salut à tous, déjà je savais pas où mettre le sujet alors je l'ai mis ici.
J'ai pensé à une méthode de compression de niveaux qui m'a paru intéressante :
en gros, on a une matrice avec un peu n'importe où des cases avec un chiffre entre 0 et 3.
On va compresser uniquement les chiffres 1,2 et 3.
Pour cela, on va enregistrer un nombre dans une variable, qui va pouvoir contenir chaque case 1, une autre variable pour chaque case 2 et une autre pour chaque case 3.
On va utiliser pour cela un peu de binaire : en gros, on va enregistrer une puissance de 2 à chaque case.
Par exemple la première case (1,1), si elle est égale à 1 on ajoute à la variable 1 et si c'est autre chose on ajoute pas. La case d'après, si elle est égale à 1 on ajoute 2, la case suivante 4, 8, 16, 32, etc...
Ensuite, on fait pareil mais pour les autres chiffres.
à la fin, on obtient un niveau qui tient en trois variables
exemple :
3244487->A
12447567->B
648->C


Pour la décompression, il suffit juste de parcourir en sens inverse (la puissance de 2 doit diminuer), si A est supérieur ou égal à la puissance de 2 actuellement vérifiée, alors il met 1 à la case correspondante dans la matrice.

Après c'est juste une idée qui est venue comme ça, et vu que j'ai rien sous la main pour tester...
J'ai jugé intéressant qu'on y réfléchisse tous.



Thomatos Hors ligne Ancien administrateur Points: 3495 Défis: 39 Message

Citer : Posté le 04/11/2013 18:07 | #


J'avais testé ça pour mon RPG, sauf que ça n'est plus vraiment valable dans le cas où on a de grosses maps avec 9 (ou plus) "sprites" ...
J'ai finalement adopté un système proche du RLE - un peu adapté évidemment !
Alex_1186 Hors ligne Membre Points: 1215 Défis: 46 Message

Citer : Posté le 04/11/2013 18:56 | #


Oui le RLE c'est pratique en fin de compte (je fais un TIPE dessus! ).

Oui finalement ton système ça revient à stocker en binaire puis puis transcrire en décimal. C'est simple et efficace, tant que la taille de données n'est pas trop grande (13 chiffres max par variable! Et pas 15 comme on le croit, tests à l'appui!).
Projets que je soutiens
Projets que je soutiens
Robscape 2 de Ray
Les tests vidéo de Marmotti
Mes projets
Mes projets
Une dizaine de projets top secrets...

Timeless Remix Airwolf
"And the dream will never die..."
Dodormeur Hors ligne Ancien rédacteur Points: 3964 Défis: 82 Message

Citer : Posté le 04/11/2013 18:59 | #


alex a écrit :
Oui finalement ton système ça revient à stocker en binaire puis puis transcrire en décimal. C'est simple et efficace, tant que la taille de données n'est pas trop grande (13 chiffres max par variable! Et pas 15 comme on le croit, tests à l'appui!).


en fait, 30 par variable

13 pour la partie "classique", 2 pour la mantisse (le E), et le double pour la partie imaginaire
et comme c'est codé en BCD, les chiffres des variables sont en décimal, et ne s’arrête pas brutalement a un nombre binaire (comme en C, ou les variables peuvent se stopper a 255 )
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Alex_1186 Hors ligne Membre Points: 1215 Défis: 46 Message

Citer : Posté le 04/11/2013 19:05 | #


Ah le E je ne savais pas! Mais la partie imaginaire ça fait longtemps que je m'en sers!
(cf la compression de ouf de Timeless Remix 8) )
Projets que je soutiens
Projets que je soutiens
Robscape 2 de Ray
Les tests vidéo de Marmotti
Mes projets
Mes projets
Une dizaine de projets top secrets...

Timeless Remix Airwolf
"And the dream will never die..."
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 04/11/2013 19:07 | #


C'est un peu le principe des sprites en C monochrome
Dodormeur Hors ligne Ancien rédacteur Points: 3964 Défis: 82 Message

Citer : Posté le 04/11/2013 19:07 | #


D'ailleurs, pour avoir la mantisse, il faut faire log(A), mais par contre c'est pas facile à utiliser, car pour utiliser une valeur de la variable normale, il faut faire un long décompressage.
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Alex_1186 Hors ligne Membre Points: 1215 Défis: 46 Message

Citer : Posté le 04/11/2013 19:10 | #


Bah oui, mais pas si long que ça, pour TR j'avais été étonné de la rapidité du truc.
Bien sûr c'est pas utilisable en plein moteur de jeu, seulement pour stocker des niveaux ou des trucs comme ça...
Projets que je soutiens
Projets que je soutiens
Robscape 2 de Ray
Les tests vidéo de Marmotti
Mes projets
Mes projets
Une dizaine de projets top secrets...

Timeless Remix Airwolf
"And the dream will never die..."
Dodormeur Hors ligne Ancien rédacteur Points: 3964 Défis: 82 Message

Citer : Posté le 04/11/2013 19:11 | #


Quand je dis long, c'est long au niveau de la taille, pas au niveau rapidité.
Car c'est bien d’économiser 4 octets par niveaux, mais si c'est pour en perdre 400 à faire une fonction de décompression
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Alex_1186 Hors ligne Membre Points: 1215 Défis: 46 Message

Citer : Posté le 04/11/2013 19:13 | #


Oui, j'ai calculé tout ça!
En fait j'ai pas gagné 4 octets, j'ai presque divisé la taille de la campagne par 10!!!
(De 14000 et quelques à 1600 octets!)
Projets que je soutiens
Projets que je soutiens
Robscape 2 de Ray
Les tests vidéo de Marmotti
Mes projets
Mes projets
Une dizaine de projets top secrets...

Timeless Remix Airwolf
"And the dream will never die..."

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 v42 © créé par Neuronix et Muelsaco 2004 - 2021 | Il y a 70 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