Übersicht

Weltverwaltung

BaseWorld und ChunkManager verwalten Entities und räumliche Partitionierung.

BaseWorld

BaseWorld ist der Container für alle GameObject-Instanzen im Spiel. Es verwaltet die Entity-Update-Schleife und automatische Garbage Collection.

import { BaseWorld, GameObject } from '@mavonengine/core'

// Zugriff über game.world
const world = game.world

Eigenschaften

EigenschaftTypBeschreibung
entitiesMap<string, GameObject>Alle Entities nach ihrer ID geordnet
chunkManagerChunkManagerRäumlicher Partitionierungs-Manager

Entities hinzufügen

world.add({
  'player-1': myPlayer,
  'enemy-1': myEnemy,
})

Entities werden durch eine String-ID identifiziert. Verwende stabile, aussagekräftige IDs (z.B. Player-Verbindungs-IDs für vernetzte Entities).

Update-Schleife

BaseWorld.update(delta) wird automatisch von BaseGame aufgerufen. Es:

  1. Ruft update(delta) auf jeder Entity in entities auf
  2. Entfernt jede Entity mit garbageCollect === true

Garbage Collection

Um eine Entity zu entfernen, setze ihr garbageCollect-Flag:

myEntity.garbageCollect = true
// Entity wird beim nächsten Welt-Update entfernt

Oder rufe destroy() direkt für sofortige Bereinigung auf:

myEntity.destroy()

ChunkManager

ChunkManager bietet räumliche Partitionierung zur effizienten Verwaltung einer großen Welt. Es teilt die Welt in Chunk-Regionen auf.

// Zugriff über world.chunkManager
const chunks = world.chunkManager

Eigenschaften

EigenschaftTypBeschreibung
loadedChunksMap<string, Chunk>Aktuell geladene Chunks

Chunk

Jeder Chunk repräsentiert eine räumliche Region der Welt. Chunks werden je nach Spielernähe geladen und entladen (Streaming).

ServerWorld

Für Multiplayer-Projekte erweitert ServerWorld BaseWorld um Player-/Client-Verwaltung. Siehe Netzwerk — Server für Details.