최종 프로젝트: 철혈의 지휘관 - TODO 리스트 작성

ggm-_-·2024년 11월 28일
3

TIL (Tody I Learn)

목록 보기
32/51
post-thumbnail

2024.11.28(목)

현재 진행하는 프로젝트의 TODO리스트를 작성해 보았다.
(현재 타임라인 부분은 팀원들과 회의를 통해 바뀌었는데 수정이 필요하다. <- 수정하면 그을 예정)

게임 소개

게임 이름 : 철혈의 지휘관(The Iron-Blooded Commander)
장르 : 전쟁 전략 시뮬레이션 + 영지 경영
게임 소개 : 한 영지의 영주가 되어 영지를 경영하고 기사와 병력을 모집하며 강력한 군대를 만들어라! 또한, 한 군의 지휘관으로서 다양한 전략을 구상하고, 자신만의 전술로 전쟁을 승리로 이끌어 천하를 제패하라!
게임 배경 : (임시) 왕국이 부패해 혼란해진 정세 속에서, 여기저기서 반란이 일어나 영지전이 빈번하게 발생하게 되었다. 지휘관이여, 혼란 속에서 자신의 영지를 지키고 왕이 되어라!


1사이클 기반 TODO리스트 작성

(1사이클에서 팀의 기획에 맞게 어느정도 살이 붙어 있음을 감안해야 할 것)


영지

1. 영지 내부 UI

  • 타임라인
  • 타임라인 진행 버튼 (턴 진행 버튼)
  • 전체적인 맵 볼 수 있게 해주는 버튼(대륙 지도 보기)
  • 건물(버튼 or collider처리): 병영(군부), 광장(모집공고), 포로 수용소, 대장간, 농지, 광산, 시장, 영주성(국세청-인두세 걷는 곳)?(세금징수-중세엔 뭐라고 부르지?)

2. 영지 내부 UI에서 버튼으로 군부, 모집공고, 대장간, 시장, 국세청 선택 기능 및 각 선택시의 UI

  • 건물 선택시 UI 뜸, 이전이나 x버튼 클릭 또는 esc키 입력으로 이전화면으로 이동

1. 병영(군부) (UI+: 병영 UI)

  • 보유한 기사 목록과 병과별 병력수 목록을 확인하고, 기사와 병사들과 상호작용할 수 있는 로직 필요

1. 기사에게 선물 부여 로직 (UI+: 기사 정보 UI)

  • 기사를 선택하면, 기사의 정보를 보여주는 UI로 이동한 후, 해당 UI에서 해당기사에게 선물을 부여할 수 있는 로직

2. 대련 로직 (기획 제안)

  • 영주가 하루에 한 번, 특정 기사에게 대련 제안 가능. 마찬가지로 기사 정보UI에서 대련하기 버튼을 클릭해 대련 가능.
    (대련 시에 영주와 기사의 훈련도가 오르고, 기사의 충성심이 오름)
  • 기사와 병사 훈련시키는 로직
    훈련에 보낼 기사들과 병과를(병과별로 훈련보내기로 했던 것으로 기억) 선택해서 훈련보내기 버튼을 누르면, 훈련 이벤트를 타임라인 진행시에 시작하는 로직(타임라인의 이벤트 관리 시스템에 넣어놓으면 될 듯)

2. 모집공고 (UI+: 모집공고 UI)

기사모집과 병사모집 탭 존재 및 선택으로 이동

1. 기사모집 (UI Tab+: 기사모집 Tab)

  • 기본적으로 설정되어있는 기사들이 오는 로직과, 영지의 명성, 민심에 따른 기사들이 등장했을 시의 로직 필요
  • 기사와의 계약을 마쳤을 때, 계약금을 지불하고 내 기사로 편입되는 로직 필요(월급은 월 지출 내역에서 지불)

2. 병사모집 (UI Tab+: 병사모집 Tab)

  • 병사들을 모집할 때, 인구수에 따라 병사들을 최대 얼마만큼 모집할 수 있을 지에 대한 로직 필요

3. 포로 수용소

  • 포로를 영지민으로 바꾸는 기간을 적용하는 로직(민심, 명성 등에 의해 기간이 달라지게)
  • ! 기획 제안
    포로를 바로 병력으로 바꾸게 되면, 훈련도와 경험치가 높은 포로를 얻을 수 있게 하면 좋을 듯하다
  • 포로에게 농사( 정도는 짓게 할 수 있을까?)를 시키는 로직(농사 속도가 빨라짐, 농사가 되면 광산도 가능하게 해야할 듯)

4. 대장간 (UI+: 대장간 UI)

  • 기사에게 줄 무기와 장비를 자원을 소모하여 제작할 수 있는 로직(수여 안함)
  • 병사들의 무기와 장비를 병과별로 일괄적으로 제작하여 부여할 수 있는 로직(바로 수여함)

5. 농지 (UI+: 농지 UI)

  • 강화하여 이벤트 완료 시 수확하는 자원의 양이 증가하는 로직
  • 버튼 눌러서 농지 이벤트 활성화

6. 광산 (UI+: 광산 UI)

  • 강화하여 이벤트 완료 시 채굴하는 자원의 양이 증가하는 로직
  • 버튼 눌러서 광산 이벤트 활성화

7. 시장 (UI+: 시장 UI)

  • 강화하여 월 세금 증가시키는 로직

8. 국세청?(세금징수-중세엔 뭐라고 부르지?) (UI+: 국세청 UI)

  • 세율 조정 가능하게 하는 로직

3. 영지 명세서

  • 월 지출 로직: 영지에 있는 병력들의 수와 기사들에 의한 월급 지출에 대한 로직 필요. (이외의 지출이 있다면 추가)
  • 월 수입 로직: 월마다 시장, 국세청에 의해 들어오는 세금에 대한 로직 필요 (이외의 수입이 있다면 추가)
  • 월 수익 및 지출 UI: 전체 해당 월의 지출과 수입에 대한 기록을 UI에 보여주는 로직 필요

타임라인

  • 타임을 진행시킬 수 있는 버튼을 누르면 가장 가까운 이벤트 발생이나 완료 시점으로 타임라인을 변경하는 로직(시간은 앞으로만 가야됨)
  • 이벤트 종료 시간이 순서대로 정렬되어있는 List나 Dictionary(이하 ' '라고 하겠음)를 이용해서 종료되는 이벤트 감지하는 로직

1. 이벤트가 발생하는 것을 감지하는 로직

  • 앞으로 발생할 이벤트를 관리하는 리스트(이하 '발생 이벤트 리스트' 라고 하겠음)를 이용해 발생할 이벤트를 감지하는 로직
  • 특정 시기에 고정적으로 발생하는 이벤트를 '고정 이벤트 리스트'를 만들어 고정 이벤트가 해당 날짜가 되면 발생되게 하는 로직

(이 경우, 고정 이벤트 진행을 위한 'current고정이벤트Index'를 만들어서 타임라인 진행 버튼을 누르면, current고정이벤트Index을 현재 타임라인과 타임라인 진행시에 이동할 다음 타임라인인 [진행 이벤트 종료 시점 or 발생 이벤트 발생 시점]의 타임라인사이의 기간에 해당되는지를 체크하여, 고정이벤트가 발생하는 타임라인이 안에 있을 경우 고정이벤트가 시작되는 타임라인으로 이동하도록 할 수 있다.)

1. 플레이어가 상호작용으로 이벤트를 발생시키는 경우

  • 상호작용으로 이벤트 발생 시, 바로 '진행 이벤트 리스트'에 이벤트 기간에 맞춰 삽입하여 관리 ('발생 이벤트 리스트'에 넣지 않고 바로 진행)

2. 특정 조건에 의해 자동으로 발생된 이벤트의 경우

  • '발생 이벤트 리스트'의 첫 번째 원소와 '고정 이벤트 리스트'의 current고정이벤트Index의 원소의 타임라인을 체크하여 가장빠른 발생이벤트로 이동하는 로직

전투 단계

  • 맵 (맵 시찰)
  • 전략설정
  • 전투 시작

맵 (맵 시찰)

  • 전투시작 버튼(전투시작 PopUp뜸)(UI PopUp+ : 전투시작 PopUp)
  • 전략 설정UI로 넘어가는 버튼

1. 맵 확인

  • 마우스 휠과 alt+좌클릭을 이용해 맵을 전체적으로 확인하게 만드는 기능

2. 3D 맵 만들기

적이 쳐들어 왔을 때, 적이 쳐들어 온 위치를 기반으로 맵이 선택되어 전장이 만들어지는 로직 (대륙 지도를 바탕으로 만들어지게 해야 됨)

  • 평지만들기
  • 지형지물 만들기 (2사이클)
  • 출격한 적 병력(기사, 기사에 배정된 병과 및 병사 수, 역할?)이 배치되는 로직(적의 기본 전략에 따라 지정되어있는 지휘관과 기사들의 위치가 정해질 것)
  • 아군 병사들이 배치가 가능한 영역을 플레이어에게 제공해주는 로직(배치 가능한 지역을 파란 선으로 보여주고, 전략 설정UI의 인원 배치도에서 카메라가 파란선을 넘지 않도록 하면 될 것. - 물론, 병사와 기사들이 파란선을 넘지 않도록 하는 로직도 필요함)

전략설정 (UI+: 전략 설정 UI)

전략 설정에는 다음과 같은 UI가 있다.

  • 전투시작 버튼(전투시작 PopUp뜸)
  • 이전 버튼(맵으로 돌아가기)
  • 전략 Tab (UI Tab+: 전략 Tab)
    • 버튼을 통해 전략의 생성이 가능하게 하는 로직(뿔피리, 북, 깃발 등의 아이템을 구매했을 때, 최대 전략 개수가 늘어나게 할 것인지?)
  • 현재 기본 전략 정보(현재 기본 전략이 무엇인지)
  • 기본 전략 선택 버튼(현재 보여지고 있는 전략을 기본 전략으로 만든다.)

    기본전략이란? 전투 시작 시의 시작 전략이다.

1. 인원 배치도

  • 맵에서 지정한 아군 병사들 배치가능 구역에 맞춰 카메라가 해당 지역을 비추는 로직
  • 초기 시작 시(게임 내에서의 첫 전쟁), 지휘관만 인원 배치도에 보이며(default 영주), 지휘관 클릭 시 해당 전쟁의 지휘관을 선택할 수 있는 팝업창이 뜨는 로직 (UI PopUp+: 지휘관 선택 PopUp)
  • 기사를 드래그 앤 드롭으로 넣어서 기사의 위치를 지정해줄 수 있는 로직

1. 부대 정보 UI(기사가 이끄는 부대의 정보)(UI+: 부대 정보 UI)

  • 3D기사, 기사 정보, 임무 및 병력을 보여주는 로직
  • 부대 정보 UI에서 기사, 임무, 병력을 선택했을 때(버튼), 해당되는 목록이 뜨고, 선택 시, 선택된 해당 정보가 그 부대의 정보가 되는 로직
  • 병력이 배치되면 임의로 부대 병력 편성 화면에 병사들이 나타나고, 해당 병사들을 드래그로 선택하여 좌클릭으로 옮길 수 있게 하는 로직
  • ! 나중에 추가하면 좋을 로직
    임시 적을 부대 병력 편성 부분에서 우리 부대의 앞에 생성하여, 시뮬레이션 버튼을 누르면 해당 부대의 전투 시의 동작을 시뮬레이션해서 보여주는 로직

2. 보유기사

  • 전장(인원 배치도)에 배치되어 있지 않은 기사들의 목록을 보여주는 로직
  • 기사 썸네일을 클릭하면 기사 정보 PopUp을 띄워서 보여주는 로직

1. 기사 정보 PopUp(UI PopUp+: 기사정보 PopUp)

3. 부대 임무

  • +버튼을 통해 커스텀 임무를 추가할 수 있게 하는 로직
  • 임무를 클릭하면 해당 임무를 제어하는 창이 생성되는 로직

1. 커스텀 임무 생성(UI+: 커스텀 임무 생성 UI)

  • +버튼을 통해 임무 개수 늘릴 수 있는 로직
  • 임무 이름을 사용자가 입력 가능하게 하는 로직
  • 임무의 내용 선택 시, 해당 임무의 행동이 결정되고, 다른 임무를 선택할 수 없게 만드는 로직
  • 임무 선택 후, 세부 임무 선택할 수 있는 스크롤이 활성화 되어, 세부임무를 결정해줄 수 있는 로직.
  • ! 로직 기획 변경 제안
    체력 몇 이하이면 해당 병사가 다른 부대로 이동하게 되고, 그 부대의 병사가 되게 하는 건 어떤가요?->등뒤의 상처는 검사의 수치

4. 총 병력 현황 (배치된 상황을 요약해서 보여주는 UI)

  • 어떤 기사들과 어떤 병과의 병사들이 얼마나 출진하는지 수치를 보여주는 로직

임무 별 행동 로직

  • 부대의 임무를 자동으로 기사와 병사들에게 배정해주는 로직(임무가 없는 부대는 없다)
  • 임무가 배정된 병사의 행동 로직
  • 임무가 배정된 기사의 행동 로직
  • 기사의 지능에 따른 생존 로직

행동 로직 종류

  • 라인 유지 (라인을 유지하며 이동)
  • 돌진(적이 보이면 가장 가까운 적에게 돌격하여 싸움)
  • 예비대(타겟 부대에 결원이 생기면 지원 병력을 보냄)

전략 별 행동 로직

  • 각 전략이 변경될 때, 부대가 전략에 따라 변경된 위치로 이동하고, 부대의 역할이 변경되게 하는 로직(적과 싸우고 있을 때, 어떤 식으로 부대가 위치를 변경하는지도 고려할 필요가 있을 수 있음)
  • 전략에 맞춰 부대들의 임무를 변경해주는 로직(기사와 병사들은 자동으로 부대의 임무를 따라가게 만들면 될 것)

전투 시작

  • 전투 중 UI (UI+ : 전투 UI)
  • 맵 (마우스 휠로 확대 축소, alt+마우스 좌클릭으로 평면이동)
  • 전략 선택 바
  • 전략 보기 버튼
  • 인원 배치도 버튼
  • 타임라인 바 (년, 월, 일, 시간을 나타내는 UI)
  • shift + 우클릭을 통한 본대에 이동 명령을 내리는 로직. 이동 명령을 내렸다고 본대가 바로 이동하는 것이 아니라, 아군 병력에게 뿔피리나, 북, 깃발 등의 신호를 주고, 기사들이 명령을 내리는 모션을 보여주면서 이동을 하게 만드는 로직

1. 맵

  • 맵 시찰 부분에서 보여주었던 맵을 그대로 가져오면 될 것이다.
    (그렇다면, 맵을 만들 때, 병사들이 맵 바깥으로 나가지 못하게 만들거나, 바깥으로 갔을 때, 그쪽 부분이 추가로 생성이 되는 형식으로 구성해야 될 것이다.- 구현이 쉬운 것은 맵을 그냥 못 벗어나게 하는 것)

2. 전략 선택 바

  • 플레이어가 만들어 놓은 전략이 전략 선택 바에 ScrollView로 들어가 있게 만드는 로직
  • 전략 선택 바에 있는 전략을 선택하면, outLine이 활성화 되거나, 색이 변경되는 식으로 선택된 전략이 무엇인지 표시하고, 해당 전략에 맞게 전체 병력의 전략을 바꾸는 로직

3. 전략 보기 버튼 (UI PopUp+ : 전략 보기 PopUp)

  • 전략 보기 버튼을 클릭하면 내가 설정한 전략 리스트와 해당 전략에 대해 내가 작성한 설명을 볼 수 있게 하는 로직 (내가 나의 전략을 한 번에 알아보기 쉽게 작성한 설명)

4. 인원 배치도 버튼

  • 인원 배치도 버튼을 누르면 인원 배치도 PopUp이 뜨면서 해당 전략으로 배치한 인원의 원래 모습이 어떻게 되어있는지 확인 가능

전투 결과

  • 전투 결과 UI
  • 영지로 이동하는 버튼

승리

  • 전투 결과 UI 승리
  • 부상자, 사망자 및 전리품으로 얻은 골드, 포로, 식량, 무기?, 군마? 등등을 표시
  • 전리품으로 받은 전리품들을 영지의 자산에 더하는 로직 필요
  • 적 영지를 공격하는 버튼 (나중에 적 영지를 공격하러 가는 기능이 생기면 붙인다)

패배

  • 전투 결과 UI 패배
  • 패배 조건에 따른 피해 내역을 표시
    - 사망자, 부상자
    - 골드, 기사, 병력, 식량, 무기?, 군마?

1. 상황에 의한 패배

  • 피해내역으로 인해 잃은 부분을 영지의 보유 자원에서 빼는 로직(전쟁 시작 시, 자원을 들고와서 자원이 빠지는 로직이 있었으면 없어도 될 듯하다)

2. 영주 사망에 의한 패배

  • 영지로 이동하는 버튼 -> 처음으로 (버튼)
  • 처음으로 (버튼) 클릭 시 영지를 잃고 처음부터 다시시작하게 되는 로직(로딩 화면으로 가서 '불러오기' 가 없고, '새로운 영지' 버튼 밖에 없음)
profile
미숙한 초보 게임 개발자

2개의 댓글

comment-user-thumbnail
2024년 12월 2일

댓글 A는 댓글 A여서 댓글 A처럼 쓸 수 있다.

1개의 답글