[25.06.02] TIL( 숙련 팀프로젝트 발표 및 회고 )

설민우·2025년 6월 2일

내일배움캠프 - Unity

목록 보기
54/85

오늘로써 숙련주차 팀 프로젝트를 끝마치게 되었습니다.
서바이벌 생존 게임을 기반으로 하여 디펜스 게임을 넣은 방식이었습니다.

Keep :

  • 우선 팀장으로서 업무 분배와 일정 진행에 차질 없이 진행 관리를 잘 했다고 생각합니다. 저희 조는 주말에도 큰 작업은 없었으며 중간에 문제상황도 없었고, 발표 당일날에는 제출 후 온전히 발표 준비만 진행 할 수 있는 상태였습니다.
  • 상속 구조를 잘 사용하여 코드를 작성했다고 생각합니다. Base~~~ 기반의 코드가 많아서 확장에 열려있는 상태로 개발하여 추구 새로운 기능들을 넣는것에 쉽도록 설계되었습니다.
  • 어찌 되었은 PC 빌드로 게임이 동작하게는 되어서 게임 사이클을 돌릴 수 있다는 점은 기능이 많았음에도 일주일 내에 잘 문제를 해결했다고 생각합니다.

Problem :

  • 사실 진행간 큰 문제는 없었습니다. 다만, 이번 팀 프로젝트 주차에는 다른 일들이 너무 겹처서 그것들이 힘들었습니다.
  • 또한 기획자가 있는 상태에서는 처음으로 개발을 진행해보는 것이라서 업무량이 조금 많았다는 생각이 듭니다. 게임을 마감하고 컨텐츠를 늘리는 기간이 부족했습니다.

Try :

  • 다음부터는 일정을 좀 더 타이트하게 잡을 필요가 있어 보입니다. 여전히 일주일 내에서의 팀 과제 제출은 쉽지 않습니다..

(아래는 작성된 리드미 입니다.)

7DAYS - SIGNAL BEYOND THE FOG

0273325a-27c9-4e8f-ae57-601f98e7293b

  • 장르: 쿼터뷰 생존 디펜스 + 전략 시뮬레이션

  • 플랫폼: Unity (3D)

  • 주요 키워드: 드론, 자동화, 자원 채집, 건물 수리 및 건설, 웨이브 방어, AI 시스템, 사운드 연동


컨트롤 안내

1) 플레이어 조작

키 입력설명
WASD플레이어 이동
마우스 이동플레이어가 보는 방향 변경
Shift플레이어가 보는 방향으로 빠르게 구름
I인벤토리 열기 (아이템 확인/사용/등록/버리기)
1~4퀵슬롯 (왼쪽부터 순서대로 1~4)
F무기 조준선 등장 및 발사 모드 전환
5무기 변경: 포탑 공격 속도 향상
6무기 변경: 적 이동 속도 감소
마우스 좌클릭무기 발사
마우스 우클릭무기 발사 취소
E상호작용 (자원, 드론 사무소, 정제소 등)
G오토바이 소환
TAB미니맵 On/Off

무기 쿨타임은 화면 아래에서 확인할 수 있습니다.


2) 건설 모드

단축키건물 종류설명
F1적의 경로를 가로막는 벽 생성
F2발전기주변 건물에 전력 공급 (정수기, 터렛에 필요)
F3정수기오염된 물을 정화하여 갈증 해소
F4터렛주변 적을 자동으로 공격하는 포탑
마우스 조작설명
마우스 이동건물 배치 위치 설정
마우스 왼쪽 클릭건설 (건물이 빨간색이 아닐 때)
마우스 휠 업/다운건물 청사진 회전
ESC / 마우스 우클릭건설 취소

드론 조작 : 드론 사무소에 상호작용(E) - 각 드론에 채집/건설/수리 명령

건설 모드에서 배치한 후 드론으로 건설까지 마쳐야 건물이 동작합니다.


프로젝트 주제 및 선정 배경

이 프로젝트는 인류가 사라진 세계, 안개로 뒤덮인 무인도, 그리고 기억을 송신하려는 복제 설계자의 이야기에서 출발합니다.우리는 기존의 정적인 생존 게임 구조에서 벗어나, AI 드론을 활용한 자동화 시스템플레이어의 전략적 개입이 조화를 이루는 새로운 형태의 생존 경험을 구현하고자 했습니다.

반복적인 생존 루틴에 머무르지 않고, 드론을 통해 효율적인 자원 채집과 기지 운영을 자동화함으로써 보다 높은 몰입감과 템포 조절이 가능하도록 설계했습니다.


기획 의도

플레이어가 단순히 생존하는 것이 아닌, 생산/운영/방어를 지휘하는 커맨더 역할을 수행하게 한다

드론 AI의 자동화와 플레이어 개입 사이에서 전략적 판단을 요구

자원 채집, 건물 업그레이드, 웨이브 방어의 흐름 안에 기억 회복이라는 메타 내러티브를 통합

낮과 밤의 명확한 위기/회복 사이클을 설계하여, 게임 내 몰입도를 높인다


게임 콘셉트

"7Days(Signal Beyond the Fog)"는 정체불명의 무인도에서 깨어난 복원자-03이 과거의 기억을 되찾기 위해 AI 드론과 함께 생존하고, 구조 신호를 송신하기 위해 신호탑을 강화하는 전략적 생존 디펜스 게임입니다.

낮에는 자원을 채집하고 기지를 보강

밤에는 몰려오는 괴물 웨이브를 방어

신호탑을 강화할수록 섬의 진실에 가까워짐


주요 기능 요약

건설 시스템

  • 건물 종류
건물명설명
신호탑게임 시작 화면 위쪽의 큰 등대. 해당 건물을 지키는 것이 목표입니다.
드론 사무소게임 시작 화면 왼쪽에 위치한 미래지향적 건물. 상호작용하여 드론에 명령할 수 있습니다.
적의 진입을 막는 구조물로, 체력이 높아 방어용으로 적합합니다.
발전기주변 건물에 전력을 공급합니다. 발전기가 있어야 정제소 및 자동 포탑이 건설/작동 가능합니다.
정제소오염된 물을 정화하는 건물입니다. 상호작용하여 오염된 물을 투입하면 정제된 물을 획득할 수 있습니다.
자동 포탑주변의 적을 자동으로 공격하는 방어용 건물입니다.
  • 건물은 수리 및 건설 가능하며, 고유 체력과 기능을 보유

  • 클래시오브클랜 방식의 배치 시스템 적용

  • 드론이 직접 건물 건설 수행 (건설 대기열 → 드론이 이동 → 건설 시간 진행)

드론 시스템

  • 드론은 자동 채집, 수리, 건설 수행

  • 드론은 생성/선택/명령이 가능하며, 상태(Idle, Gathering, Repairing, Building 등)를 가짐

  • 수리 및 건설에는 자원이 소모됨 (예: Scrap)

자원 시스템

  • 자원은 다양한 채집소(폐허, 연료탱크 등)에서 획득 가능

  • 채집 후 일정 시간 후 리스폰

  • 자원 종류:

    • 고철(Scrap)

    • 회로 조각(Circuit)

    • 연료셀(FuelCell)

    • 오염된 물(DirtyWater) → 정제소 → 정제수(CleanWater)

    • 식량 (통조림, 건조 식량팩)

    • 기억 코어(MemoryCore)

전투 & 웨이브 시스템

  • 총 7일 생존 기반 웨이브 시스템

  • 날이 갈수록 몬스터 강도와 수가 증가

  • 특정 날 밤에는 보스 몬스터 등장

Player 시스템

  • 플레이어는 중앙 Player 스크립트를 중심으로 입력, 이동, 무기, 상태 등 기능을 모듈화하여 관리하며, 유지보수확장성이 용이한 구조로 설계하였습니다.
스크립트명역할 설명
Player중앙 허브 역할, 각 기능들을 관리 및 참조
PlayerControllerInputSystem 입력 처리
PlayerStatus체력 및 스태미나 등 상태 관리
PlayerMovement이동 및 회전, 대쉬
PlayerWeaponHandler무기 장착/해제/투척 처리
PlayerVehicleHandler탈것 호출 및 탑승
PlayerAnimationHandler애니메이션 상태 설정
PlayerAudioHandler사운드 처리
PlayerEventHandler커스텀 이벤트 트리거

image

인게임 화면

스크린샷 2025-06-01 183229


주요 스크립트 구조

DroneUnit, DroneHandler: 드론 이동, 수집, 수리, 건설

Resource, SpawnManager: 자원 채집 및 리스폰

ResourceManager: 자원 통합 관리

RepairableBuilding, BaseBuilding: 건물 수리 및 건설 상태 관리

WaveController: 웨이브 진행 및 몬스터 스폰

UIManager, UI_Inventory, UI_Dialogue: 인터페이스

AudioManager: BGM/SFX 통합 관리 (자동 등록 지원)


사운드

  • 효과음과 배경음은 무료 에셋 기반

AudioManager.cs를 통해 싱글톤 구조로 통합 제어

각 스크립트에서 키워드 기반으로 간편 재생 가능

스크린샷 2025-06-01 191007


🧠 몬스터 AI 시스템

Transition 기반 외부 상태 전환 관리상태 머신(State Machine) 아키텍처를 사용하는 모듈형 몬스터 AI 시스템입니다.
각 몬스터는 AI_BASE 클래스를 상속하며, 고유한 행동 패턴과 공격 로직을 가집니다.
image
image

몬스터설명
AI_HuskPlayer 우선 공격
AI_Spine공중에서 타워 우선 공격 (필요 시 Player 전환)
AI_Acid독사체로 타워 공격
AI_Runner빠르게 달려서 타워 돌진
AI_Stealth5초마다 은신하며 Player 공격
AI_Stealer드론 우선 공격
AI_Collapser보스 몬스터
페이즈 1: 타워 집중 공격
페이즈 2: Player 분신 생성 및 광역 공격

📦 아키텍처 개요

🧩 핵심 구성 요소

  • AI_BASE

    • 모든 몬스터의 기본 클래스
    • 상태 머신(AI_StateMachine) 포함
  • AI_StateMachine

    • 현재 상태를 저장하고 관리
    • Transition 객체를 통해 외부 조건에 따라 상태 전환 수행
  • Transition

    • 상태 전환 조건과 대상 상태를 외부에서 명시
    • 상태 클래스 내부의 조건 분기 제거 → 유지보수성과 테스트 용이성 증가

🔁 상태 시스템

모든 상태는 AIState 클래스를 상속받습니다.


개발 가이드

  • ResourceTypeItemDataenum으로 통일 관리

  • 모든 자원과 건물은 ScriptableObject 또는 enum 기반 설계

  • 드론은 DroneManagerOfficeDroneHandler를 통해 관리

  • 기능 단위별 모듈화: 유지보수확장 용이


팀원 구성

이름역할
설민우팀장 / UI 및 인벤토리
박유빈팀원 / 건설 시스템
송승윤팀원 / 적 AI와 라운드 관리
심교인팀원 / 게임 기획 및 사운드매니저
이시율팀원 / 자원 관리
장민제팀원 / 플레이어
profile
클라이언트 개발자를 지망하고 있습니다.

0개의 댓글