
OmniGen
Eliminate server slowdowns thanks to OmniGen's optimized generation and its multiple features.
Список изменений
OmniGen 0.3.37.23
Une version entièrement consacrée à la carte. Elle ne change rien au terrain lointain en jeu : ce qui suit concerne la minimap et la grande carte.
⚠️ Serveurs : mettez le jar à jour. La seconde fonctionnalité ci-dessous a besoin des deux côtés. Le reste marche avec un serveur en 0.3.37.22.
🗺 La carte n'oublie plus
Jusqu'ici, la carte lisait le cache du terrain lointain. Ce cache est borné en mémoire et évince ce qui s'éloigne — une zone explorée puis quittée disparaissait donc de la carte, et vous ne retrouviez que les gros pavés envoyés par le serveur.
OmniGen tient maintenant une couche séparée, sur votre disque : pour chaque bloc de surface, sa couleur et son altitude. Tout ce que vous avez vu une fois y reste, au bloc près, définitivement.
Pourquoi une couche à part plutôt qu'agrandir l'ancienne : le cache du terrain lointain stocke des tranches verticales — plusieurs par colonne, avec les grottes qui débouchent près de la surface. Il lui faut ça pour dessiner du relief en trois dimensions. La carte, elle, regarde d'en haut : une seule valeur par cellule lui suffit.
L'écart est considérable :
| sur le disque | |
|---|---|
| Cache du terrain lointain | 1,5 Go |
| Couche de la carte | 38 Mo |
Quarante fois plus petit, pour la même couverture au bloc près.
Au premier lancement, OmniGen reprend ce que vous possédez déjà : chez un joueur au gros cache, 1 567 675 chunks ont été repliés en 76 secondes, en tâche de fond, sans gêner la partie. Cette reprise n'a lieu qu'une fois par monde.
🔍 Affinage à la demande
La couche conserve la finesse qu'on lui donne — elle n'en invente pas. Les zones que vous n'avez jamais visitées restaient donc en pavés de 8 blocs : c'est l'atlas mondial du serveur, volontairement grossier pour couvrir toute la carte pour presque rien. Mesuré sur un écran type : 51 % des pixels.
Or le serveur possède la vraie donnée. Il ne l'envoyait pas parce que son comblement travaille en anneaux autour du joueur — et sur une carte, on regarde ailleurs, parfois à des milliers de blocs.
Désormais, quand vous ouvrez la grande carte, le client dit au serveur quelle zone il affiche. Le serveur y applique le mécanisme d'envoi qui existait déjà, et les pavés se remplacent par du terrain réel sous vos yeux.
Ce n'est pas instantané et ce n'est pas censé l'être : l'envoi reste budgété à 8 chunks par tick, soit environ 160 par seconde. Laissez la carte ouverte quelques instants sur une zone inconnue.
Bornes — la demande est rognée à 96×96 chunks autour du centre de votre écran, une demande et demie par seconde au maximum, et ignorée si vous êtes trop dézoomé pour que le détail se voie. Un paquet venu du réseau est une demande, jamais un ordre : c'est le serveur qui décide de ce qu'il balaye.
⚙️ Réglages
Deux nouvelles bascules dans Options avancées → Cartes et repères, toutes deux activées :
Carte détaillée — la couche décrite plus haut. Coupée, la carte revient exactement au comportement de la 0.3.37.22, et aucun fichier n'est créé.
Affinage à la demande — la requête au serveur. Coupée, seules les zones que vous visitez physiquement s'affinent.
📊 Ce que vous pouvez vérifier vous-même
Le journal publie un relevé quand vous ouvrez la carte :
[OmniGen/Carte] Couche de surface — 1 070 371 pixels sur 1 070 870 servis par une tuile (99 %)
[OmniGen/Carte] Finesse à l'écran — 521 096 au BLOC PRÈS (48 %), 549 275 en pavés de 8 blocs (51 %)
La seconde ligne est celle qui compte : c'est la proportion de votre écran affichée au bloc près. Avec l'affinage à la demande, elle doit monter pendant que vous regardez.
⏭ À venir
Le prochain gros chantier concerne le terrain lointain en 3D, et non plus la carte : le greedy meshing. Aujourd'hui, une plaine de mille blocs d'herbe produit mille quads identiques côte à côte ; il s'agit de les fusionner en un seul. Rien ne change à l'écran, mais chaque image coûte beaucoup moins cher — donc, à performances égales, le terrain peut rester détaillé bien plus loin.
