en ekte nattehimmel

5. september 2026 meta devlogpixelart

fjellet blir mykt om natten

Har sittet på denne en stund. Ville ha en nattversjon av header-scenen, og pikselfjellet som fungerer fint i dagslys så feil ut når alt ble mørkt, for klosset mot en himmel som skal føles dyp og langt unna.

Så bakgrunnsfjellet byttes ut med en glattet versjon om natten, sporet over det samme fergebildet jeg brukte til pikselversjonen, men tegnet som en myk, fylt form i stedet for piksler. Alt nærmere vannet, fuglene, fisken, den lille løperen, forblir piksler. Bare den fjerne bakgrunnen mykner opp. Gir det litt dybde, nære ting skarpe og klossete, fjerne ting utydelige inn i mørket slik det faktisk ville vært.

ekte stjernebilder, ikke tilfeldige prikker

Kunne bare ha strødd ut tilfeldige stjerner og kalt det ferdig, begynte faktisk sånn i omtrent en time:

const stars = Array.from({ length: 40 }, () => ({
	x: Math.random() * width,
	y: Math.random() * height
}));

Men jeg ville at himmelen faktisk skulle være en himmel. Slo opp hvor Cassiopeia og Karlsvogna (det het den da jeg vokste opp) står i forhold til Nordstjernen og la ut begge stjernebildene som faktiske punktmønstre i stedet for tilfeldig støy. De roterer sakte rundt Nordstjernen over tid akkurat som den ekte himmelen gjør, bare mye raskere sånn at du faktisk kan legge merke til det mens siden laster, i stedet for over en hel natt.

Liten detalj ingen er pålagt å legge merke til, men jeg vet den er der, og det er nok for meg.

å huske hvor det var

Siste ting jeg la til: scenen husker nå omtrent hvor alt var hvis du kommer tilbake innen fem minutter. Fugleposisjoner, stjernerotasjon, alt sammen, lagret i local storage med et tidsstempel:

export const SCENE_MAX_AGE_MS = 5 * 60 * 1000;

export function loadScene<S>(
	storage: StorageLike | null,
	key: string,
	now: number = Date.now(),
	maxAgeMs: number = SCENE_MAX_AGE_MS
): StoredScene<S> | null {
	if (!storage) return null;
	try {
		const raw = storage.getItem(key);
		if (!raw) return null;
		const parsed = JSON.parse(raw);
		if (!parsed || parsed.v !== 1 || typeof parsed.savedAt !== 'number') return null;
		const age = now - parsed.savedAt;
		if (age < 0 || age >= maxAgeMs) return null;
		return parsed as StoredScene<S>;
	} catch {
		return null;
	}
}

Vandrer du av gårde for å lese et innlegg og kommer tilbake til forsiden, nullstiller den seg ikke bare til en fersk tilfeldig scene, den plukker opp der den nesten slapp. Etter fem minutter slipper den taket og stokker på nytt.

Det er redesignet stort sett ferdig for nå. Mosegrønt papir, et fjell som faktisk ligner fjellet, altfor mange fugler, et sidefelt, og en himmel som faktisk vet hvor Karlsvogna er. Kommer nok til å fortsette å pirke på småting, men dette er formen på det.

0 kommentarer

Logg inn for å kommentere.

Logg inn

Ingen konto?