Skip to content

Repository files navigation

Project SeaShield

CI

함대공 교전 시뮬레이터 — 함정 전투정보실(CIC) 관점에서 공중 위협의 탐지·추적·요격 전 과정을 재현하는 C++ / UDP·TCP 멀티클라이언트 서버 기반 정밀 3D 시뮬레이터.

  • 서버: C++20, kqueue/epoll Reactor, TCP+UDP 하이브리드 프로토콜, 60Hz 고정 틱 결정론 시뮬레이션
  • 클라이언트: Unreal Engine 5 (C++) — 운용석(지휘/사격통제/관측) 역할 분담
  • 시뮬레이션: 레이더 탐지 → 칼만 필터 추적·예측 → 사격통제(PIP·외탄도) → 무유도 로켓탄 일제사 요격 → 교전 판정 → 리플레이/AAR

빌드와 실행

요구사항: CMake ≥ 3.24, C++20 컴파일러 (macOS/Linux). 코어는 외부 의존성 0 (테스트만 GoogleTest).

cmake -S . -B build && cmake --build build -j
ctest --test-dir build --output-on-failure        # 단위 + 통합 + 결정론 회귀 테스트

./scripts/linux-test.sh                           # Docker로 Linux(epoll) 검증
cmake -S . -B build-tsan -DSEASHIELD_SANITIZE=thread \
  && cmake --build build-tsan -j && ctest --test-dir build-tsan   # TSan (address 프리셋 동일)

P2 데모 — 탄도 샌드박스 (외탄도 + 랜덤 현실 기상)

# 시드 기반 랜덤 기상에서 자동 사격 솔루션으로 일제사
./build/ballistic_sandbox --scenario scenarios/crossing-asm.scn --auto --salvo 8 --dispersion 2

# 같은 절차, 날씨만 3종 바꿔 비교 — 환경이 탄착을 바꾼다
./build/ballistic_sandbox --scenario scenarios/crossing-asm.scn --auto --salvo 8 --compare-weather 7,21,42

# 수동 사격 제원 + 보정, 파라미터 스윕(요격률 표), 궤적 CSV 덤프
./build/ballistic_sandbox --az 30 --el 24 --offset-az 0.5 --sweep el=15:35:2 --dump traj.csv

P1 데모 — 멀티클라이언트 서버 (느린 클라이언트 격리)

./build/seashield_server --port 7901 --udp-port 7902 --mode broadcast &
./build/loadclient --port 7901 --clients 8 --slow 1 --messages 300 --payload 512
# → 슬로우 클라이언트만 "send queue overflow"로 격리 절단, 나머지 7개는 정상 완주

구조

core/      수학(Vec3)·PRNG(PCG32)·RAII fd·로깅    net/     Reactor(kqueue/epoll), 프레이밍, 세션, UDP
sim/       환경(대기·바람·거스트·기상생성)·외탄도   server/  에코/브로드캐스트 데모 서버
           ·표적·교전판정·사격통제(PIP)·월드        tools/   부하 클라이언트, 탄도 샌드박스, 레퍼런스
           ·저널·상태해시·시나리오                  tests/   GoogleTest (단위·통합·결정론 회귀·골든)
scenarios/ 시나리오 파일                            docs/    기획·설계 문서

문서

문서 내용 상태
docs/README.md 문서 허브 - 문서 지도, 최신 상태, 갱신 규칙 ✅ current
docs/01-기획서.md 프로젝트 기획서 - 컨셉, 아키텍처, 로드맵, 검증 전략 ✅ P0-P6 완료, P7+ 백로그
docs/architecture/ 네트워크·프로토콜·시뮬레이션·UE 클라이언트 설계/런북 ✅ 구현 기준
docs/reports/ 사격통제 실험, 성능/비주얼 QA 보고서, 증빙 데이터 ✅ P6 + ralph 품질 패스 기록
docs/traceability-matrix.md 요구사항 → 설계 → 구현 → 검증 증빙 추적표 ✅ V-model 추적
docs/process/documentation-workflow.md 변경 후 어떤 문서를 어떻게 갱신할지 정한 작업 절차 ✅ 운영 절차

본 프로젝트의 모든 도메인 정보는 공개 자료 수준이며, 시뮬레이션 파라미터는 임의의 교육용 값입니다.

About

Naval air-defense engagement simulator — C++ TCP/UDP multi-client game server with UE5 client

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages