탄막 슈팅 게임
- 왜 해야하죠?
- 다른 것 보다 재미 있어 보여서
- 전투요소가 있어서?
- 탄막은 플레이어가 루즈 할 경험이 줄어든다
- 횡 플레이가 아닌 종횡하는 플레이가 가능
- 도전 요소
- Score
- Time
- Level
- Boss
- Speed Run
- 1 Coin Challange
- Avoid Technical
- Time Out
- Score Board
- 비주얼 적인 부분
- Player Character
- Enemy Character
- Shooting Object
- Shooting Pattern
- Background
- Item
- Power Up Effect
- Fail Visualize
- Boss Visualize
- 전략적 요소
- 경쟁시스템 (멀티플레이)
- Tempo 조절 요소 (스토리, 스테이지 이동)
- 스페이스 슈터
- [드래곤 플라이트]
- 그랑 브릭슈터(횡스크롤 레벨 디자인)
- Bullet Casters
- 20 Minutes Till Down
- SNKRX
- Tiny Rogues
- 안테크립트(컨셉)
- 케이크 인베이더 (컨셉)
- 페포 (기믹)
- 라바트 프로토콜 메탈 렙소디 (멀티)
- 크레이지 펫쇼 (멀티)
- 릭 핸더슨 (레벨 디자인)
올드 시스템 => 새로운 시스템
개발 환경 - PC
그래픽스 - 2D
해상도 - 3:4
시점 : Top-View
컨셉 :
- Zep & Gethar
- 공중 : 애니메이션을 줄일 수 있음
- 플레이어 : Zep
- 적 : 게더
- Zep 최종 보스 12조
- 5개의 단독 보스, 최종 6스테이지 경우 복합적생각이 필요
- 캐릭터 - Zep 케릭터
- 적캐릭터와 발사체- 각 스테이지 별 기획자의 기호에 맞는 케릭터
- 김세진 - 커피 : 커피콩, 스마일어택
- 최현호 - 피자 : 하와이안 피자, 페퍼로니, 파인애플조각
- 문원정 - 센과치히로 : 가오나시 얼굴, 폼포푸린
- 전은하 - 버블티 : 타피오카 펄, 소동물
- 이정훈 - 스테이크 : 고기, 토마호크, 티본
- 다이얼로그
- 보스전 대사 출력 🖍️ Zep 맵 에디터 이미지 참고
- 보스 스토리 컨셉
- 각자 스테이지에 맞춰서
- Zep 달리기 - 치킨런
- 바이러스에 감염 된 12 조
- 챌린지 수문장 🔨🔨🔨
- 내배캠 들어와서 게임 개발을 하면서 나도 챌린지를 가려고 하지만 12조가 있는 이상 쉽지 않다고!
- 유저가 다시 보스가 되는
- 본인 이름을 넣을 수 있도록 유도
- 등록되지 않은 이름은 게임 불가
- 좀비물 - 아포칼립스
- 각자 스테이지에 맞춰서
- 컨텐츠
- 싱글플레이
- 점수 (기록용)
- 코인 (재화) - 아바타, 능력치
- 공격 키입력
- 탄막은 피하는걸로
- 강화효과
- 스킬 선택 (3가지) - (처음은 빈칸 3개)
- 스킬 해금 (코인구매) (스킬 당 누적 최대 3개)
- 발사채 증가
- 탄막제거 (획득 가능한 재화로 변환 후 다시 원상복구 되어 플레이어에게 데미지를 줌)
- 상점
- 커마 ? (후순위)
- 스킬
- 랜덤박스 (꽝이 있는)
- 로컬 멀티플레이
- 키 바인딩
- 한 맵에 기체가 2개
- 협동 플레이 : 한명은 이동 담당, 한명은 공격 방향 설정 1순위
- 경쟁 플레이 : 다른 플레이어 밀어내기 2순위
- 싱글플레이
게임구성
- 인트로 씬
- 이름입력
- 입장버튼
- 이름 없을때 다시 입력하도록 하는 팝업
- 옵션UI
- 로비 씬
- 싱글플레이
- 멀티플레이
- 상점
- 종료
- 옵션
- 획득재화 상태창
- 게임씬
- 게임 뷰
- 재화 획득량
- 장착 스킬
- 안내 툴팁
- HP
- Pause
- Option
- Score
- 다이얼로그
- 보스 클리어 시네마
기능 구성
로그인
- 이름 입력 인풋
- 이름 입력 유도
- 인게임 사용 닉네임
- 본명
- 입장 버튼
로비
매니져
- 리소스 매니져 (리소스 관리)
- 게임에서 사용되는 모든 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
발표
- 다음주 화요일 정합시다.