Elk blok is massief – behalve als het dat niet is
Onze client-mesher heeft een ijzeren regel: elk blok dat geen lucht is, wordt getekend en heeft collision. Punt. Deze vereenvoudiging maakt het meshen snel en de code simpel – tot er een functie komt die precies deze regel wil breken.
De Energiepoort. Voor onze energiehekken wilden we een poort: een glinsterend membraan waar spelers en vriendelijke NPC's gewoon doorheen kunnen lopen, maar wilde dieren niet. Een blok dus dat zichtbaar is maar voor sommigen geen muur vormt. Precies wat onze architectuur niet voorziet.
De oplossing komt in twee helften. Aan de clientkant kreeg de mesher zijn eerste bewuste uitzondering: het poortblok wordt getekend maar uitgesloten van de collision-mesh – spelers lopen er gewoon doorheen. Op de server draait de eigenlijke logica: de bewegingssystemen van de wezens controleren bij elke stap of er een energiebarrière in de weg zit. Wilde dieren en vijanden keren om, metgezellen en spelers komen erdoor. Deze controle moest in alle drie de bewegingssystemen – wilde dieren, metgezellen, planeetvijanden – anders had één soort wezen de poort niet “gekend”.
De eerlijke voetnoot: vliegende wezens zweven gewoon over het hek heen. Dat is geen bug, maar een gedocumenteerde beperking – een hek houdt nu eenmaal niets tegen wat kan vliegen. We schrijven zulke bewuste gaten liever op dan dat we ze verstoppen.
Wat overblijft: architectuurregels als “alles wat geen lucht is, is massief” zijn waardevol juist omdat ze simpel zijn. Maar je moet wel weten waar de ene uitzondering woont – en waarom daar.
Opmerkingen