Skip to content

Produzierte Einheiten erscheinen am Sammelpunkt statt am Produktionsgebäude #46

Description

@cubetribe

Aus dem Betatest vom 09.08.2026 (Build a434e2c, macOS). Quelle: docs/production/hashkrieg/Testberichte/2026-08-09_a434e2c_T-01.md

Beobachtung

„Produzierte Einheiten erschienen magisch am festgelegten Sammelpunkt." — „Panzer und andere Einheiten teleportierten zum Sammelpunkt, statt aus dem Produktionsgebäude zu kommen."

Zusätzlich: „Wenn Einheiten im Gebäude entstanden, glitchten sie durch das Gebäude-Asset nach draußen."

Ursache

ProductionSystem.TryFindSpawnCell beginnt die Ringsuche an der Sammelpunkt-Zelle:

int rallyCellX = Math.Max(0, SimFixed.WorldToGrid(SimFixed.FromRaw(row.RallyXRaw)));
int rallyCellY = Math.Max(0, SimFixed.WorldToGrid(SimFixed.FromRaw(row.RallyYRaw)));
for (int ring = 0; ring <= SpawnSearchMaxRing; ring++) { ... }

Die Einheit wird also am Ziel erzeugt, nicht am Gebäude. Es gibt keinen Weg vom Gebäude zum Sammelpunkt, weil sie diesen Weg nie zurücklegt. Das ist kein Darstellungsfehler, sondern die Simulationslogik.

Erwartung (aus dem Bericht)

  • Einheiten entstehen mitten im Gebäude-Asset und fahren beziehungsweise laufen heraus
  • Solange keine Toranimation existiert, ist das Durchfahren durch das Asset ausdrücklich akzeptabel
  • Später öffnet sich ein Tor, durch das die Einheiten herauskommen
  • Der Sammelpunkt bleibt das Bewegungsziel, nicht der Entstehungsort

Umsetzung

Ringsuche am Gebäude-Footprint starten, dann einen Bewegungsbefehl auf den Sammelpunkt setzen. Damit fällt das Teleportieren weg und der Sammelpunkt behält seine Bedeutung.

Betrifft auch die Kollisionsauflösung: eine im Footprint entstandene Einheit muss verdrängt werden können, ohne den Determinismus zu brechen (TryFindPushOutCell existiert bereits).

Zu beachten

Die Spielbarkeit hängt daran mit: ein Sammelpunkt weit weg von der Basis ist derzeit ein Gratis-Transport quer über die Karte.

Datei

Assets/_Project/Scripts/Simulation/Production/ProductionSystem.csTryFindSpawnCell

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingsimulationSimulationskern, Determinismus, Netzcode

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions