Skip to content

Task-Implement minimal agent spawn and 2D movement on fixed map #15

@learncold

Description

@learncold

Summary

고정된 데모용 FacilityLayout2D와 최소 navigation 입력을 기반으로 에이전트를 생성하고, fixed-step 2D 이동을 재현하는 최소 시뮬레이션 경로를 구현한다. 이 작업의 목표는 Sprint 1 데모에서 점 형태의 다수 에이전트가 벽과 장애물을 넘지 않고 목적지까지 이동하는 흐름을 안정적으로 보여주는 것이다.

Parent Issue

#2

Area

Domain

Sprint

Sprint 1

Scope

  • 데모용 고정 FacilityLayout2D 또는 hand-authored layout fixture를 입력으로 받는 최소 실행 경로를 정리한다
  • 시나리오 또는 고정 fixture에서 시작 위치와 목표를 읽어 에이전트 엔티티를 생성하는 AgentSpawnSystem 또는 동등 기능을 구현한다
  • Position, Velocity, Goal 같은 최소 핫패스 상태를 이용한 fixed-step MovementSystem을 구현한다
  • 벽, barrier, non-walkable 영역을 통과하지 않도록 최소 충돌 또는 회피 제어를 넣는다
  • 필요 시 domain navigation 데이터(예: baked path query 또는 고정 waypoint 집합)를 참조해 기본 경로 추종을 구현하되, 외부 import 라이브러리 타입에 직접 의존하지 않는다

Acceptance Criteria

  • 고정된 데모 맵에서 설정한 수의 에이전트가 재현 가능한 방식으로 생성된다
  • 에이전트가 지정된 목표를 향해 이동하며 barrier 또는 비보행 영역을 통과하지 않는다
  • 동일 seed와 동일 입력에서 이동 결과가 반복 실행 시 크게 달라지지 않는다
  • 최소 100개 수준의 에이전트를 대상으로 기본 이동 데모와 smoke 검증이 가능하다

Architecture / Dependency Check

  • 이동 규칙은 domain system으로 구현하고, 개별 entity 객체에 로직을 넣지 않는다
  • engine은 범용 ECS/runtime만 유지하고, FacilityLayout2D나 navigation 결과는 domain 계약으로 다룬다
  • Qt 렌더링과 위젯 코드는 application에만 둔다
  • 이 작업은 DXF/IFC import stack 활성화가 없어도 진행 가능해야 하며, imported layout 연동은 별도 follow-up으로 둔다
  • include 루트는 계속 src/를 유지하고 domain/..., engine/... 형식을 따른다

Verification Plan

  • cmake --preset windows-debug-no-app
  • cmake --build --preset build-no-app-debug
  • ctest --preset test-no-app-debug
  • 가능하면 고정 데모 맵으로 에이전트 spawn/movement 결과를 로그 또는 간단한 시각화로 확인한다

Dependencies / Blockers

  • #53FacilityLayout2D 계약은 이미 정리되었으므로 hard blocker는 아님
  • imported layout 추론 결과를 붙이는 작업은 #55와 이어질 수 있지만, 이 이슈의 필수 선행조건은 아니다
  • import stack 로컬 빌드(#52)는 이미 정리되었고, 이 이슈의 최소 경로는 해당 스위치에 종속되지 않는다

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions