Mais avant de trouver une formule finale qui allait bien, j'ai été obligé d'errer, sérieusement errer. Les premiers formats testés étaient trop gourmands. Je m'étais résigné à passer par une compression Deflate... qu'il fallait ensuite encoder en Base64 pour stocker dans un dataset Backsic... ça fonctionnait, mais c'était pas glorieux.
J'ai finalement trouvé une solution d'indexage intelligent (et efficace) des cubes... jusqu'au stade où Deflate ne faisait plus gagner que 40% mais avec une Base64 qui en faisait reprendre 33% de l'autre côté... ça s'auto annulait.
Bref j'ai pu me passer ET de la compression, ET d'un encodage : sérialisation pure pour moins de 4 octets par cube. Sachant qu'il me reste encore un peu de marge d'optimisation...
Chambre 1408 1806
Avec bien sûr un bug impossible durant ce périple : il me manquait parfois un cube sur mes objets exportés. Ici ou là, une brique pouvait disparaître sans aucune raison logique. Enfin si, c'est toujours logique, mais c'était bien caché.C'est lors de la disparition du bloc "1806" que j'ai réalisé. Dans l'export les index sont écrit avec un radix de 36. Et 1806 s'écrit ainsi "1e6". J'avais juste oublié la conversion implicite lors du chargement des databanks où "1e6" est vu comme un exposant, et donc converti en numérique en 1,000,000 ce qui en base 36 le portait à 2,176,782,336. De quoi légèrement perdre des blocs au loin... très loin.
BREF... tout ça pour pouvoir enregistrer sur le serveur un objet en 1 ligne de code.
© 2026
Backsic
Backsic