탄막 슈팅 게임

올드 시스템 => 새로운 시스템

개발 환경 - PC

그래픽스 - 2D

해상도 - 3:4

시점 : Top-View

컨셉 :

  1. Zep & Gethar
    • 공중 : 애니메이션을 줄일 수 있음
    • 플레이어 : Zep
    • 적 : 게더
  2. Zep 최종 보스 12조
  3. 5개의 단독 보스, 최종 6스테이지 경우 복합적생각이 필요
  4. 캐릭터 - Zep 케릭터
  5. 적캐릭터와 발사체- 각 스테이지 별 기획자의 기호에 맞는 케릭터
    1. 김세진 - 커피 : 커피콩, 스마일어택
    2. 최현호 - 피자 : 하와이안 피자, 페퍼로니, 파인애플조각
    3. 문원정 - 센과치히로 : 가오나시 얼굴, 폼포푸린
    4. 전은하 - 버블티 : 타피오카 펄, 소동물
    5. 이정훈 - 스테이크 : 고기, 토마호크, 티본
    6. 다이얼로그
      • 보스전 대사 출력 🖍️ Zep 맵 에디터 이미지 참고
  6. 보스 스토리 컨셉
    1. 각자 스테이지에 맞춰서
      1. Zep 달리기 - 치킨런
      2. 바이러스에 감염 된 12 조
      3. 챌린지 수문장 🔨🔨🔨
        • 내배캠 들어와서 게임 개발을 하면서 나도 챌린지를 가려고 하지만 12조가 있는 이상 쉽지 않다고!
        • 유저가 다시 보스가 되는
        • 본인 이름을 넣을 수 있도록 유도
        • 등록되지 않은 이름은 게임 불가
      4. 좀비물 - 아포칼립스
  7. 컨텐츠
    1. 싱글플레이
      • 점수 (기록용)
      • 코인 (재화) - 아바타, 능력치
      • 공격 키입력
      • 탄막은 피하는걸로
    2. 강화효과
      • 스킬 선택 (3가지) - (처음은 빈칸 3개)
      • 스킬 해금 (코인구매) (스킬 당 누적 최대 3개)
        • 발사채 증가
        • 탄막제거 (획득 가능한 재화로 변환 후 다시 원상복구 되어 플레이어에게 데미지를 줌)
    3. 상점
      • 커마 ? (후순위)
      • 스킬
      • 랜덤박스 (꽝이 있는)
    4. 로컬 멀티플레이
      • 키 바인딩
      • 한 맵에 기체가 2개
      • 협동 플레이 : 한명은 이동 담당, 한명은 공격 방향 설정 1순위
      • 경쟁 플레이 : 다른 플레이어 밀어내기 2순위

게임구성

  1. 인트로 씬
    1. 이름입력
    2. 입장버튼
    3. 이름 없을때 다시 입력하도록 하는 팝업
    4. 옵션UI
  2. 로비 씬
    1. 싱글플레이
    2. 멀티플레이
    3. 상점
    4. 종료
    5. 옵션
    6. 획득재화 상태창
  3. 게임씬
    1. 게임 뷰
    2. 재화 획득량
    3. 장착 스킬
      • 안내 툴팁
    4. HP
    5. Pause
    6. Option
    7. Score
    8. 다이얼로그
    9. 보스 클리어 시네마

기능 구성

로그인

  1. 이름 입력 인풋
  2. 이름 입력 유도
    1. 인게임 사용 닉네임
    2. 본명
  3. 입장 버튼

로비

매니져

  • 리소스 매니져 (리소스 관리)
    • 게임에서 사용되는 모든 Sprite, Sound, Prefabs 등을 Load 하고 사용 되는 기능
  • 풀링 매니져
  • 오브젝트 매니져
  • 데이터 매니져
  • UI 매니져
  • Scene 매니져
  • 오디오 매니져
  • GameManger

Class

  • Player
  • Projectile
  • Enemy
  • Skill
  • Gold
  • Stage
  • Store
  • Event
  • Reward

업무분장

System

Resource 관리

1) Resources 폴더 사용: 별도 설정 필요 없음.
2) Asset Bundle 사용: 별도 설정 필요. (어케 하는지 몰?루)
3) Addressable Asset 사용: 패키지 설치 및 별도 설정 필요.

Data 관리

1) RawData를 Excel로 관리 -> Xml로 파싱 -> DataManager를 통해 로드
2) RawData를 Excel로 관리 -> Json로 파싱 -> DataManager를 통해 로드: 패키지 설치 필요
3) 기타 방법…

=> 방법에 따라 설치해야 할 패키지가 달라질 수 있으므로 정하고 넘어가야 편할 것 같습니당

추가 입력 처리방법 1) 기존 Input 클래스 이용
2) Input System 이용: 패키지 설치 필요

Object, Polling 관리

  • 오브젝트 생성/제거를 어떻게 생성/제거할지?

    UI 관리

  • UI를 어떻게 나눌 것인지, 어떻게 띄울 것인지

🤴🏻 김세진 : Manger 오야붕

  • 코드 검수, 확인

최현호 : 오브젝트 풀링 전은하 : UI 관리 문원정 : 리소스 관리 이정훈 : 데이터 관리

Code Convention

private void Convention()
{

}

private T _variables;

public T Variables {get; set;}

[SelializeField] private T variables;

private const T Variables;

public enum T enumVariables {UPPPERCASE};

// 어트리뷰트
[Header("어쩌고"}][Tooltip("AASD")]
[SerializeField]private T variables;
메서드 상단에는 
/// <summary><summary>

// 내부 주석

메서드 또는 필드 구분
#region Region Name

#endregion
private void Convenstion(string stringVariable, int intVariable)
{

}

GitHub Convention

Fork 방식

Commit Message

[💫 Feature] 새로운 기능 [🐞 Bug] 발생한 버그 [🛠️ Bug Fix] 버그 수정 [➕ Add] 기능에 추가 기능 구현 [❗️Complex] 복합적인 수정 및 버그 픽스 사항

기능은 최소한의 기능을 구현 후에 커밋하는 습관

Branch Manage

대문자이니셜-기능-상세기능 ex). LJH-DataManager-JsonDataCreate

Merge Process

  • 커밋 알림 “저 커밋 하겠습니다.”
  • 커밋 이후 세진님 코드 리뷰 후에 Merge 하는 것으로
  • 머지 이후에는 팀원들에게 알려주시고 팀원 분들은 Branch -> current Merge Branch 로 브랜치 최신화
  • Conflict 발생시 최 우선으로 알려주시기 바랍니다.

Unity Convenstion

에셋 추가 및 Package Notion SA Package : 패키지 문제시 빠른 해결을 위해 기입 바랍니다. 이동 처리 Input System

발표

  • 다음주 화요일 정합시다.