Naar de inhoud

Het eerste stuk grond

Sprint 1 ·

Vanaf nu klik je op Nieuw spel en kijk je op een leeg stuk grond. Honderdvijftig meter breed, honderd meter diep, anderhalve hectare, met weiland eromheen. Het is het eerste in dit project dat je een wereld kunt noemen.

Een bruin vlak in het groen, dat klinkt bescheiden. Maar hieronder ligt het coördinatenstelsel waar alles op gaat landen wat nog komt. De kas, de bakken, de goten, de gangpaden, de mensen die er straks doorheen lopen. Klopt de maat van dat raster niet, dan klopt er daarna niets meer.

Het perceel zoals je het ziet bij het begin van een nieuw spel

Eén tegel is één vierkante meter

Dit was de eerste echte beslissing van het project. Het archief is groot, maar er staat nergens in hoe groot een tegel hoort te zijn. Alle veertig documenten zijn erop doorzocht en er kwamen precies drie maten uit: een kashoogte van zeven en een halve meter, een waterbassin van zesduizend kubieke meter, en de tien hectare uit het excursieverslag. Geen tegelmaat.

Het is dus een keuze geworden, en die keuze is één vierkante meter. Daar zit een reden achter. Het excursieverslag rekent in zestig kilo tomaat per vierkante meter. Het ontwerpdocument houdt als record bij wat je beste opbrengst in euro per vierkante meter is. De hele glastuinbouw denkt in vierkante meters, en zo denkt het spel nu ook. Zestig kilo per tegel, euro per tegel, nergens een omrekening.

Er is nog een aanwijzing die mooi uitkwam. Het mechanicsdocument zegt dat muren en pilaren tien procent van een tegel mogen gebruiken. Bij een tegel van een meter is dat tien centimeter, en dat is aardig precies de dikte van een kasgevel met stalen profiel.

Het raster verschijnt als je het nodig hebt

Een perceel van anderhalve hectare bestaat uit vijftienduizend tegels. Van dichtbij zijn dat prettige vierkanten om op te werken. Van ver worden het vijftienduizend lijntjes die dunner zijn dan de pixels die ze moeten tekenen, en dan zie je ruis in plaats van een raster.

Daarom vervaagt het raster als je uitzoomt, en komt het terug zodra je dichterbij komt. Dat sluit ook aan op het oorspronkelijke ontwerp, want daar worden de tegelvakjes getekend tijdens het bouwen, groen als de tegel vrij is en rood als hij bezet is. Het is nooit bedoeld als iets dat altijd over de hele kaart heen ligt.

Het tegelraster halverwege de overgang, op veertig meter afstand

De besturing komt rechtstreeks uit 2017

Het ontwerpdocument van 19 december 2017 is er kort over:

"WASD-buttons move camera. EQ-buttons and Scroll-wheel press to rotate camera. ZX-buttons and Scroll-wheel to zoom camera."

Zo werkt het nu ook. WASD verplaatst, E en Q draaien, Z en X en het scrollwiel zoomen. De camera kijkt altijd naar een plek op je eigen terrein, dus je kunt hem niet kwijtraken. Bij het starten rekent hij zelf uit hoe ver hij moet staan om het hele perceel in beeld te krijgen, op elk schermformaat.

Twee vlakken voor vijftienduizend tegels

Onder de motorkap is er één regel die zwaarder weegt dan de rest. Een tegel wordt nooit een los object in de scene. Een hectare is tienduizend tegels, en de grootste teler uit het excursieverslag heeft honderddertig hectare aan kassen. Daar begin je niet aan met een object per tegel.

De grond is dus één vlak van vier hoekpunten, en het complete raster is één mesh van 504 punten. Het rekenwerk zit in de kern van het spel, helemaal los van de weergave. Dit is bijvoorbeeld het punt waar een medewerker straks naartoe loopt als hij iets op een tegel moet doen:

public GroundPosition CentreOfTile(TileCoordinate tile)
{
    RequireOnThePlot(tile);

    return new GroundPosition(
        (tile.X + 0.5d) * TileSizeMeters,
        (tile.Z + 0.5d) * TileSizeMeters);
}

Nergens in die kern staat het getal 1. De tegelmaat komt uit een databestand, dus hij is te wijzigen zonder dat er een regel code aan te pas komt.

De tegels van dichtbij, elk een vierkante meter

De cijfers

Tegel 1 bij 1 meter
Perceel 150 bij 100 meter, 1,5 hectare
Tegels op het perceel 15.000
Vlakken om dat te tekenen 2
Hoekpunten in het raster 504
Tests 174, allemaal groen

Het land om het perceel heen is voorlopig één groen vlak. Buurpercelen, de weg die over de kaart loopt, bomen en stenen komen aan de beurt als de kaartgeneratie wordt gebouwd.

Volgende keer gaat het over de kas zelf. Een vierkant trekken op het terrein, en dan wachten tot het frame er staat, want de kas is het enige gebouw dat in dit spel echt bouwtijd nodig heeft.

← Devlog