
OmniGen
Eliminate server slowdowns thanks to OmniGen's optimized generation and its multiple features.
Список изменений
OmniGen 0.3.37.20-BETA
La version où le terrain lointain devient réellement jouable.
Dix images par seconde avant, quatre-vingts après, au même endroit. Un horizon qui plafonnait à 64 chunks et qui en atteint maintenant plus de 500. Un cache qui se corrompait silencieusement depuis des semaines, et qu'on a fini par prendre la main dans le sac.
Tout ce qui suit a été mesuré en jeu, pas estimé.
🚀 Performances : 10 → 80 images par seconde
Mesuré au même endroit, sans bouger. Et surtout : entre 60 et 80 stables, que l'on regarde l'océan lointain, une forêt ou des îles. Auparavant, tourner la tête vers du terrain boisé suffisait à diviser les images par seconde par deux.
Trois réglages, désormais activés par défaut :
- Lointain allégé — le détail décroît deux fois plus vite avec la distance
- Regroupement agressif — les blocs de 32×32 chunks prennent le relais dès 48 chunks au lieu de 96
- Reconstruction paresseuse — le terrain lointain se reconstruit moins souvent
Tous restent désactivables individuellement dans les options avancées.
Ce qui coûtait si cher
Le détail décroissait avec la distance, mais lentement : détail maximal jusqu'à 20 chunks, puis un cran tous les 36. Conséquence peu intuitive — à 64 chunks, le terrain était encore rendu presque bloc par bloc, soit 128 × 128 chunks de voxels quasiment pleine résolution envoyés à votre carte graphique à chaque image. Le détail décroît maintenant deux fois plus vite. Les vingt premiers chunks autour de vous ne changent pas d'un pixel ; c'est l'horizon qui devient plus grossier.
Ce réglage avait été assoupli fin juillet, avec la note « coût assumé, on a la marge ». La marge venait d'une carte bien moins remplie. Un million et demi de chunks plus tard, elle n'existait plus — mais le réglage, lui, était resté.
Et un emballement qui s'auto-alimentait
Un régulateur interne augmentait le débit d'envoi vers la carte graphique quand les images ralentissaient. L'intention était bonne pour le lancement des calculs, qui ne coûte rien. Mais la même règle s'appliquait aux envois, qui se paient exactement là où ça ralentit : image lente → on envoie quatre fois plus → image encore plus lente. Le remède était indexé sur le symptôme. Il est désormais inversé : plus l'image est lente, moins on envoie.
Effet direct : à très grande distance d'affichage, le jeu reste jouable pendant que l'horizon se construit, au lieu de s'effondrer à quelques images par seconde.
💾 Le cache du terrain est refait de fond en comble
C'est le changement le plus profond de cette version, et il corrige un défaut qui a coûté des semaines sans jamais être vu.
Le cache était un unique fichier compressé lu d'un bout à l'autre. Trois conséquences, toutes structurelles :
- 34 secondes de chargement au démarrage. Pour connaître le terrain sous vos pieds, il fallait décompresser tout le reste du monde. Rien ne s'affichait avant la fin.
- Un octet abîmé faisait perdre tout ce qui suivait. C'est ce qui arrivait : le fichier se corrompait silencieusement, le jeu repartait avec un morceau arbitraire du monde, et le terrain apparaissait rayé — un défaut longtemps cherché dans l'affichage alors qu'il était sur le disque.
- Le fichier entier était réécrit toutes les deux minutes pour y ajouter quelques milliers de chunks. C'est ce volume qui rendait deux sauvegardes simultanées capables de se corrompre l'une l'autre.
Le nouveau format est indexé : chaque chunk se lit et s'écrit indépendamment.
- L'horizon proche s'affiche en deux secondes au lieu de trente-quatre, et le reste se charge pendant que vous jouez. Le terrain est relu du plus proche au plus loin, dans l'ordre où il vous sert.
- Une entrée abîmée ne coûte que son chunk. Le reste demeure lisible.
- On n'écrit plus que ce qui est neuf, au moment où il arrive.
Reprise automatique. Votre cache existant est converti au premier lancement, une seule fois. Sur un monde très exploré, comptez deux à trois minutes pendant lesquelles le terrain lointain n'apparaît pas — c'est normal, et ça n'arrivera plus jamais ensuite. L'ancien fichier est conservé sous
voxel.bin.migrated: gardez-le un jour ou deux, puis supprimez-le.⚠️ Le cache prend plus de place qu'avant. Compresser chaque chunk séparément coûte forcément plus que compresser tout le fichier d'un bloc — c'est précisément ce qui permet d'en lire un sans lire les autres. Sur un monde d'un million et demi de chunks, cela représente quelques centaines de mégaoctets supplémentaires. Le chargement instantané et la résistance à la corruption se paient là.
🗺️ Le terrain lointain se remplit enfin — trois blocages levés
Trois mécanismes empêchaient la carte de se compléter, chacun invisible seul.
Le scanner de carte recommençait à zéro dès que vous marchiez. Il balaie le monde en anneaux depuis vous, et se recentrait — en repartant du premier anneau — dès que vous vous éloigniez de 64 chunks, soit environ une minute de marche. Sur un monde joué pendant des semaines, il en était encore à l'anneau 6. Il ne recentre désormais que si vous sortez réellement de la zone déjà balayée.
Le serveur ignorait tout ce qui est à plus de 256 chunks. Au-delà, un morceau de terrain manquant n'était jamais mis en file : le serveur attendait que vous vous en approchiez. Cohérent quand l'horizon plafonnait à 64 chunks, absurde depuis qu'il en atteint plus de 500. Porté à 512.
Et le serveur remplissait le spawn pendant que vous jouiez ailleurs. La prégénération globale reprend maintenant uniquement quand plus personne n'est connecté — un serveur passe l'essentiel de son temps sans joueurs, c'est là qu'il faut travailler. Le rayon prégénéré autour de vous passe par ailleurs de 96 à 256 chunks.
🌅 Le terrain apparaît en douceur
Le terrain lointain ne surgit plus d'un bloc : il remonte à sa place en sept dixièmes de seconde. Combiné au remplissage en cercles concentriques depuis votre position — au lieu de bandes qui balayaient l'écran — le paysage se construit autour de vous plutôt que par plaques.
L'effet ne repose sur aucun shader : il fonctionne donc sous n'importe quel shaderpack, contrairement au flash blanc de l'ancienne transition, qui n'existait pas sous Iris.
Désactivable : « Apparition en douceur » dans les options avancées.
🧭 La carte
La grande carte se met à jour toute seule. Elle était figée entre deux actions ; elle vit maintenant comme la minimap. La cadence s'ajuste d'elle-même à la taille de votre écran et à l'échelle : le calcul ne prend jamais plus de la moitié du temps disponible, quelle que soit votre configuration.
Une animation d'ouverture. Appuyez sur M : la minimap quitte son coin, glisse vers le centre, puis s'agrandit jusqu'à remplir l'écran. Purement esthétique — mais elle dit sans un mot que les deux cartes sont le même objet vu de deux manières. Un clic ou une touche l'interrompt si vous êtes pressé.
Le fond ne tranche plus. Les zones non explorées et le pourtour de l'image partagent enfin la même teinte : deux notions qui n'avaient aucune raison de se distinguer à l'œil.
🧠 Correctifs
L'inventaire renvoyé en boucle. Toutes les trente secondes, le client reconstruisait l'inventaire complet de ce qu'il possède — plus d'un million et demi de chunks parcourus, une table de 24 000 régions rebâtie de zéro — sur le fil qui dessine vos images, pour renvoyer au serveur un inventaire rigoureusement identique au précédent. Deux à trois gigaoctets de déchets à ramasser toutes les trente secondes, pour redire ce qui avait déjà été dit. Désormais : rien n'est envoyé si rien n'a changé, et le calcul a quitté le fil de rendu.
Des bandes entières de terrain qui n'apparaissaient pas. Le rendu cédait la place aux grands blocs regroupés en supposant qu'ils étaient prêts — sans vérifier. Entre le moment où il cédait et celui où la relève arrivait, personne ne dessinait. Le terrain reste maintenant à l'écran tant que son remplaçant n'existe pas réellement.
Les réglages avancés sont enfin mémorisés. Les vingt-cinq interrupteurs revenaient à leur valeur par défaut à chaque lancement du jeu. Ils sont désormais écrits dans la configuration, sous des noms lisibles.
📊 Pour les curieux : le journal mesure ce qu'il fait
Rien de visible en jeu. Toutes les trente secondes, le journal indique en moyenne par image : combien de dessins pour les chunks proches, combien pour les blocs regroupés, combien pour les grands blocs, et combien d'envois vers la carte graphique. La carte publie de son côté le taux de chunks réellement disponibles.
Si vous rencontrez une chute d'images par seconde, ces relevés disent où ça se passe. Ce sont eux qui ont permis de trouver la plupart des correctifs de cette version — et notamment de cesser d'accuser l'affichage d'un défaut qui était sur le disque.
🐛 Signaler un problème
Le formulaire de retour collecte votre configuration et pose les questions qui font gagner du temps. Tout y est facultatif, mais chaque champ rempli peut représenter des jours de recherche en moins.
