Tags
Creators
Details
0.3.38
Compatibility
Changes
Change Log 3.0
OmniGen 0.3.38
Le Nether, les portails, et un terrain lointain qui se fond enfin dans le vrai monde. AprÚs la 0.3.37.24, derniÚre version consacrée au terrain lointain de l'Overworld, le LOD ouvre sa deuxiÚme dimension : le Nether se voit de loin, à travers les portails, et l'on passe de l'un à l'autre sans écran de chargement.
Testé sur NeoForge 1.21.1, avec Sodium et Iris. Les réglages conseillés par shaderpack seront publiés avec la prochaine version.
đ„ Le terrain lointain du Nether â premiĂšre Ă©tape : la capture
- Le Nether est capturé. Jusqu'ici, la capture partait du plus haut bloc de chaque colonne : dans le Nether, c'était le toit de bedrock, et le LOD ne ramenait qu'une dalle de roche pleine. Le LOD était donc coupé dans toute dimension à plafond.
- Mode caverne (dimensions Ă plafond seulement â l'Overworld et l'End ne changent pas d'un octet) : chaque colonne est coupĂ©e en deux. Le plafond (toute la roche pleine qui descend depuis le haut de la dimension) est gardĂ© en entier, pour que les murs de netherrack qui relient le toit au sol aient leurs flancs. Sous le plafond, le premier bloc devient la « surface », et la capture habituelle s'y applique : coquille, fond, ouvertures profondes, seconde fenĂȘtre. La mer de lave, les deltas de basalte, les forĂȘts carmin et biscornues sont dĂ©sormais dans les donnĂ©es.
- Une seule rĂšgle pour les deux captures : le serveur et la resynchronisation client (casser/poser un
bloc) appellent la mĂȘme fonction (
util.CaveCeiling). Pas de couture entre les deux. - Aucun changement de format : le client retrouve le plafond tout seul (le groupe de tranches jointives du haut de chaque colonne). Rien de plus sur le réseau ni sur le disque.
- LumiÚre : sous un plafond, plus de « plein jour » forcé sur la tranche du haut (c'est le toit), et une lumiÚre inconnue vaut l'ambiance du Nether au lieu du plein soleil.
- Rendu : le sol est la surface fusionnée (greedy) et celle des paliers lointains ; le plafond est dessiné par sa face du dessous au palier fin.
- Brouillard : il recule dans le Nether comme dans l'Overworld quand le LOD est actif.
- La peinture (carte des hauteurs) reste coupée sous un plafond.
Limites connues de cette étape
- Seuls les chunks chargés du Nether sont capturés (en jouant, ou générés neufs). Le terrain déjà prégénéré loin du joueur n'est pas encore rattrapé : il faudra un backfill Nether (comme l'atlas de l'Overworld).
- Aux paliers fusionnés (trÚs loin), seul le sol est dessiné, pas encore le plafond.
- Pas de bascule dans le menu pour l'instant : coupe-circuit
CaveCeiling.ENABLEDdans le code.
đ LumiĂšre du Nether (test du 26/09 aprĂšs-midi)
- La lave, la glowstone et les champilampes Ă©clairent le LOD. Le Nether a une heure figĂ©e Ă minuit : l'effet jour/nuit du LOD assombrissait tout Ă0,22. Il est coupĂ© dans les dimensions sans ciel.
- Plus de plaques rouge foncé sur les parois. Sous un plafond, une lumiÚre « inconnue » (tranche enterrée) s'écrivait comme du noir mesuré, et les flancs sans mesure en face la reprenaient. Le rendu ne lit plus « l'air du dessous » que s'il y a vraiment de l'air, et une tranche enterrée prend la lumiÚre du sommet de sa pile. Aucun changement dans l'Overworld, aucune recapture nécessaire.
- Le plafond tient en une seule tranche : moins de géométrie invisible, et le sol sous les surplombs n'est plus sacrifié par la limite de tranches par colonne.
- La carte montre le sol du Nether, plus le toit.
đșïž Carte
- Nouveau cran de zoom : 1 px = 0,5 bloc. Un cran de plus que « 1 px = 1 bloc », pour lire et viser au bloc prÚs autour de soi (poser un repÚre pile au bon endroit).
đ„ CamĂ©ra
- Plus d'ondulation du terrain lointain quand on prend des dĂ©gĂąts. La secousse de camĂ©ra des coups (mobs, chuteâŠ) faisait bouger le LOD comme le balancement de la marche. Elle est retirĂ©e sous le mĂȘme « Verrou oscillation » (AvancĂ© â CamĂ©ra). L'animation de la mort est conservĂ©e.
đ Fuite de mĂ©moire en solo (le jeu finissait Ă 1 FPS)
- Cause trouvée grùce à la sonde mémoire : la prédiction du terrain lointain reconstruisait tout le générateur de terrain de Minecraft pour CHAQUE chunk prédit (plusieurs milliers d'objets à chaque fois), au lieu d'un seul par monde comme le fait le jeu. La mémoire montait de plusieurs Go en quelques minutes. Le générateur est maintenant construit une fois et réutilisé : moins de mémoire, et une prédiction bien plus rapide.
đ Diagnostic
- Sonde mémoire automatique : quand la mémoire du jeu dépasse 80 %, OmniGen écrit dans le journal la liste des types d'objets qui l'occupent (une fois, puis au plus toutes les 5 minutes). Sert à trouver la fuite qui mettait le solo à 1 FPS.
đ«ïž Terrain prĂ©dit (non jouable) â reconnaissable
- Le terrain que le client calcule lui-mĂȘme Ă partir de la graine (relief et biomes, sans structures ni arbres) est maintenant lĂ©gĂšrement voilĂ© en jeu, comme vu Ă travers une brume, et hachurĂ© sur la carte. On distingue d'un coup d'Ćil le vrai terrain du terrain seulement prĂ©dit. Il n'est jamais fusionnĂ© avec du vrai terrain au loin, pour que la frontiĂšre reste nette.
- Prédiction bien plus rapide : elle se fait à 4 blocs prÚs au plus fin (au lieu du bloc prÚs), puis de plus en plus grossier au loin. Le terrain prédit atteint enfin l'horizon au lieu de s'épuiser à cÎté du joueur.
- Plus de « tas de sable » sur l'océan prédit : la prédiction prenait la surface de l'eau pour le sol et y posait une plage. Elle lit maintenant le fond marin, et remet l'eau par-dessus.
- La prédiction comble enfin les trous lointains : la passe « proche » épuisait à chaque balayage tout le budget d'examen vers 22 chunks, et la passe « lointaine » ne recevait jamais rien. Chacune a son budget.
- OcĂ©an prĂ©dit correct : l'eau est une surface (et non plus des cubes d'eau qui flottent), au mĂȘme niveau que la vraie mer. Les colonnes prĂ©dites ont la mĂȘme Ă©paisseur que le vrai terrain : plus d'Ăźles « suspendues » ni de trous noirs entre deux chunks de hauteurs diffĂ©rentes.
- Sur la carte, seuls les pixels réellement prédits sont hachurés (plus de vrai terrain hachuré).
Nether et Overworld ne se mélangent plus
- En passant un portail, les chunks du nouveau monde pouvaient ĂȘtre rangĂ©s dans le cache (et sur le disque) de l'ancien : des morceaux de Nether apparaissaient dans l'Overworld, autour du portail, et revenaient Ă chaque visite. Le changement de monde se fait dĂ©sormais au premier tick, avant toute Ă©criture.
- MĂȘme correctif en quittant un serveur pour un monde solo.
Génération par région (expérimental, activé par défaut)
- Le serveur gĂ©nĂšre le terrain par rĂ©gions de 8Ă8 chunks, une Ă la fois, et finit chaque rĂ©gion avant de passer Ă la suivante (d'abord celle oĂč vous ĂȘtes, puis celle que vous regardez).
- CÎté client, une région s'affiche soit entiÚrement en réel, soit entiÚrement en terrain prédit : plus de damier mi-réel mi-prédit. Elle bascule d'un coup quand 90 % de ses chunks sont arrivés.
- Le mur de génération suit les régions terminées, dans toutes les dimensions (Nether et End compris).
- Désactivable cÎté serveur :
regionGeneration=falsedansconfig/omnigen-server.properties.
đ Portails : voir l'autre cĂŽtĂ© (remplace Immersive Portals pour la vue)
- La destination se voit Ă travers le portail, dessinĂ©e par le LOD : le Nether depuis l'Overworld et inversement, avec la bonne orientation (rotation d'un quart de tour quand les deux cadres ne sont pas dans le mĂȘme axe), le ciel ou le brouillard d'en face au fond, et les grottes autour du portail d'arrivĂ©e.
- Visible de loin (jusqu'Ă ~40 blocs) et dĂšs le premier coup de briquet : avant toute traversĂ©e, la vue montre le portail que Minecraft choisira (mĂȘme rĂšgle de placement que le jeu).
- Plusieurs portails collés, chacun avec sa propre vue (jusqu'à 4 à la fois, les plus proches d'abord). Seul le plus proche fait charger son arrivée ; les autres lisent le terrain déjà connu, sans coût pour le serveur.
- Animations : la vue glisse en douceur quand la destination se précise, et apparaßt en fondu.
- Rendu fidÚle : feu, racines, vignes et toiles en plaques ; escaliers, dalles, trappes et barriÚres avec leur vrai modÚle ; bûches couchées dans le bon sens ; la vue continue de se compléter tant qu'on reste prÚs du portail.
đ Portails : des liaisons stables
- Une liaison faite est verrouillée : A mÚne toujours à B et B ramÚne toujours à A, sans nouvelle recherche ni nouveau portail au milieu de nulle part. Casser le portail d'en face libÚre la liaison.
- Le portail créé de l'autre cĂŽtĂ© a la mĂȘme taille que celui qu'on traverse ; un portail existant de la mĂȘme taille est rĂ©utilisĂ©.
- Plus jamais renvoyĂ© au spawn : si l'arrivĂ©e n'est pas encore gĂ©nĂ©rĂ©e, le portail attend et l'affiche (« âł Le portail prĂ©pare l'arrivĂ©e⊠n/N ») ; quand tout est prĂȘt, « â Portail prĂȘt ». Le statut s'affiche en permanence au pied du portail.
⊠Passerelles nommées par panneau (nouveau)
- Le mĂȘme texte sur un panneau collĂ© Ă deux portails les relie, Ă n'importe quelle distance : Overworld â Overworld, Nether â Nether, ou entre les deux (sans le Ă8 du jeu).
- Les deux portails doivent avoir la mĂȘme forme (largeur Ă hauteur) ; sinon le passage est refusĂ©, avec un message qui donne les deux tailles.
- Le panneau s'illumine et des glyphes d'enchantement montent autour tant que la liaison est active.
- Un levier allumé prÚs du panneau fait faire un demi-tour : on ressort de l'autre cÎté du portail d'arrivée, tourné à 180°, et la vue montre ce cÎté-là (pratique quand l'arrivée donne sur un mur). Le statut affiche « ⻠demi-tour ».
- Plus de deux portails du mĂȘme nom : on arrive au plus rĂ©cent, et un message le signale. Sans panneau, rien ne change (liaison verrouillĂ©e habituelle).
đ„ïž Serveur : plus de gels
- Gels de 10 s corrigés : la capture du terrain lointain lisait le biome « dans le monde » depuis un autre fil, ce qui forçait le serveur à attendre la génération d'un chunk voisin. Le biome est lu dans le chunk.
- Frein commun : aprĂšs un tick de plus d'une seconde, toutes les tĂąches de fond d'OmniGen (prĂ©gĂ©nĂ©ration, rĂ©gions, rattrapage, envoi du LOD) s'arrĂȘtent 10 s. Les joueurs et les portails ne sont jamais freinĂ©s.
- Diagnostic : en cas de gel, le journal montre la pile du serveur et celle du fil qui l'a provoqué ; la ligne « Chargés » donne les chargements de chunks par source.
đĄïž Plus de chute Ă travers le terrain
- Quand le serveur est en retard et que le vrai chunk n'est pas encore arrivé, le joueur est retenu au dernier endroit sûr (« ⳠChargement du terrain⊠») au lieu de traverser le terrain lointain et de tomber dans le vide.
đŹ Barre d'action
- Plus de messages qui se chevauchent : un gestionnaire décide qui s'affiche (Minecraft et les autres mods d'abord, puis le portail, puis le chargement, puis le mur de génération).
đșïž Carte et minimap
- RepÚres et marqueur du joueur au bloc prÚs (ils étaient ramenés au coin de leur chunk, visible aux zooms forts).
- En grotte, la minimap se fixe au zoom 0,5 bloc pour lire les galeries.
đȘš GravitĂ©
- Plus de pans d'ßle qui tombent en cassant un bloc : seuls les petits morceaux détachés (64 blocs au plus) tombent ; le sable des ùmes et les blocs porteurs comptent comme appuis ; un morceau qui touche de la lave ou de l'eau reste en place.
đ§± Terrain lointain
- Escaliers en demi-bloc : option expĂ©rimentale, coupĂ©e par dĂ©faut (« Escaliers en demi-bloc »). AllumĂ©e, elle laisse encore des fentes lĂ oĂč les escaliers sont nombreux (montagnes de certains packs).
đ Terrain lointain et vrais chunks : plus de bordure
- Nouveau : à la premiÚre connexion à un monde, OmniGen demande comment afficher le terrain : « seulement au loin » (par défaut) ou « partout » (Mode LOD forcé, plus de FPS). Le choix est retenu pour ce monde et modifiable dans les options.
- Plus de falaise autour du joueur quand on regarde de haut : le terrain lointain recouvre le dernier anneau de vrais chunks et s'efface progressivement, bloc par bloc, en s'approchant du joueur.
- Plus de trous dans les coins de la distance de rendu, ni quand le serveur envoie moins de chunks que la distance du client.
- Panneaux, leviers, torches et portails ne sortent plus en cubes par-dessus les vrais blocs.
- Fondu « cape d'invisibilité » : en s'approchant, le terrain lointain ne disparaßt plus bloc par bloc mais pixel par pixel, avec un léger miroitement au bord (sans shaderpack ; sous shaderpack, le fondu par blocs reste).
- Plus de doublon en cassant un bloc : lĂ oĂč vous jouez (votre chunk, ses 4 voisins et le chunk en diagonale que vous regardez), le terrain lointain n'est jamais dessinĂ© sous les vrais blocs. En Mode LOD forcĂ©, au-delĂ de cette zone, le doublon reste voulu (c'est le principe du mode).
- Plus de dalle de terrain qui flotte Ă cĂŽtĂ© des vrais chunks, ni de tranchĂ©e sombre dans les riviĂšres : le terrain lointain n'est plus enfoncĂ© lĂ oĂč il est seul, et ne dessine plus d'eau sous la vraie eau.
- Plus de trou en forme de « plus » sous le joueur quand on vole trÚs haut.
- Plus de rectangles tramĂ©s qui restent derriĂšre le joueur : les zones de fondu se reconstruisent en entier quand on s'Ă©loigne, et en altitude (lĂ oĂč Minecraft ne dessine plus le sol) le terrain lointain reste plein.
- Plus de petits trous à cÎté des dalles (montagnes de dalles de certains packs) : le bloc voisin dessine toujours sa face.
đ Vue Ă travers les portails
- Fonctionne aussi avec un shaderpack.
- Plus de calcul inutile : la vue n'est plus recalculée en changeant de cÎté du portail, ni dessinée quand le portail est hors de l'écran (gros gain de FPS prÚs des portails).
đ„ïž Serveur : beaucoup moins de lectures disque
- Le terrain lointain manquant est lu directement dans les fichiers de région, sans charger les chunks autour : jusqu'à plusieurs centaines de chargements/déchargements par seconde en moins.
đ§ Eau et lave qui s'Ă©coulent
- Dessinées comme dans Minecraft : à leur vraie hauteur (7/9 de bloc au premier niveau d'écoulement, 1/9 au dernier) et en pente douce, chaque coin prenant la moyenne des blocs voisins, au lieu de marches de cubes pleins. Les mers et les lacs ne changent pas. Bascules « Hauteur réelle des fluides » et « Fluides en pente ». Les chunks capturés avant cette version prennent la bonne forme à leur recapture.
đ„ Nether au loin
- Le plafond est dessiné jusqu'à l'horizon : au-delà du détail maximal, la caverne ne s'ouvre plus sur le vide. Bascule « Plafond du Nether au loin ».
- Brouillard du Nether : le terrain lointain se voile dÚs le joueur et se fond dans la couleur du brouillard, comme les vrais chunks, au lieu d'un mur de brume rouge suivi d'un horizon parfaitement net. Bascule « Brouillard du Nether ».
- Diagnostic : lignes
[OmniGen/Demi-tour](FPS avant/aprÚs un demi-tour, raison de chaque maillage refait) et[OmniGen/Arrivée](temps d'affichage aprÚs un changement de dimension).
⥠FPS
- Demi-tour plus fluide : les chunks proches sortis du champ de vision sont gardés 30 s ; quand la mémoire graphique est tendue, ce sont d'abord les chunks lointains qui partent. Avant, un demi-tour refaisait jusqu'à 3 000 chunks.
đ„ïž Serveur : plus de rechargements en boucle, plus de gel
- Prégénération : elle lit le fichier de région avant de poser un ticket ; un chunk déjà généré n'est plus rechargé (avec tout son voisinage) pour rien. Mesuré : de 250-300 chunks chargés par seconde à presque rien.
- Tout changement de bloc met le terrain lointain Ă jour (commande
/fill, explosion, piston, machineâŠ), plus seulement la casse et la pose d'un joueur. Avant, l'ancien terrain revenait quelques minutes aprĂšs. - Gel de 1 Ă 2 s du serveur intĂ©grĂ© toutes les 30 s : c'Ă©tait une sonde de diagnostic, maintenant coupĂ©e par dĂ©faut (« Sondes trous et parois », options avancĂ©es).
- Journal allégé : sondes de développement coupées par défaut.
đ Distant Horizons
- Choisir Distant Horizons à la place d'OmniGen l'allume vraiment (rendu et génération lointaine), au lieu de le laisser à ses propres réglages, parfois éteints. La vue à travers les portails reste disponible.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:CCiGFtRi:B9mBypZn"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:CCiGFtRi:B9mBypZn"
}

