TIL

2024/2/23 TIL

jhwoo1221 2024. 2. 23. 19:36

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습

실전 프로젝트에 임하는 마음
기록해야할 것 : 팀내 역할, 협업, 트러블 슈팅, 최적화

기획 단계
장르 세부적으로 정하기
레퍼런스 찾기
큰 틀과 시스템 정하기
개발이 가능한 기획
선택과 집중
팀원 수준 파악

일정과 일감
사람마다 일감마다 완성하는 시간은 다르다
협의한 일정 최대한 지키기
작업의 우선순위 정하기

개발단계
UI 시스템
HUD
캐릭터
몬스터 및 AI
데이터 처리(SO, JSON)

인벤토리 시스템
제작 시스템

마무리단계
버그 수정
QA

실질적 개발시간 1달~1달반

결론
실전 프로젝트의 목적은 취업
실전 프로젝트에서 포트폴리오에 쓰면 좋은 것들
FSM
데이터 처리 (SO, JSON)
동적 생성 UIManager
디자인 패턴
해상도 대응(UI)
빌드(웹, 모바일, PC)
각종 게임 컨텐츠 (제작, 뽑기, 인벤토리 등)
전투 및 적 AI
최적화 (아틀라스, 코드, 프로파일러 등) (최적화 패치를 통한 메모리 절감 수치 기록)
트러블 슈팅

//

스탠다드 세션
추천 도서
게임 프로그래밍 패턴

디자인 패턴 : 구조를 짜는 방식

1. 옵저버 패턴 - 감시자
서브젝트 대상의 상태가 변경되면 옵저버에게 알려서 자동으로 상태를 업데이트

2. 싱글톤 패턴

3. 팩토리 메서드 패턴
-여러 종류의 인스턴스를 찍어내야할 필요가 있을 때
-공장들을 미리 만들어둔다
추상 생성자 클래스
구체적 생성자 클래스

4. 커맨드 패턴
요청을 객체로 캡슐화 시킴 - (여러 행동을 하나의 블록으로 묶는다)

5. 컴포지트 패턴
객체들을 트리구조로 구성, 단일객체와 복합 객체를 통일하여 다룰 수 있게 함
게임 오브젝트 계층 구조 관리
UI 구성 요소
스킬 트리/ 아이템 트리
AI 동작 트리

6. 스테이트 패턴
객체의 내부 상테에 따라 객체의 행동을 변경할수 있게 해주는 패턴
스테이트를 클래스로 정의하고, 클래스 안에 여러가지 작동을 넣어두고
객체에 클래스 칩을 교체하는 방식

7. 프로토타입 패턴
추상화로 프로토 타입을 만들고
실제로 사용되는 클래스들을 작성한다

8. 플라이웨이트(경량화) 패턴
여러개의 오브젝트가 유사한 객체를 효율적으로 공유해 메모리 사용을 최적화

//
델리게이트
델리게이트 = 함수(메서드)를 담는 변수
주로 비슷한 상황에서 조금씩 용도가 다른 액션을 실행해야 할 경우 사용된다.

예시를 통해 쉽게 이해하기
게임에서 상대 몬스터에 따라 다른 액션을 해야할 경우


적과의 전투
{
  void 전투판단( );
}


슬라임 무리가 적일 경우
void 전투판단_슬라임( )
{
실행: 핵을 공격한다
}

고블린 무리가 적일 경우
void 전투 판단_고블린( )
{
실행: 광역 공격을 한다
}

만렙토끼가 적일 경우
void 전투판단_만렙토끼 ( )
{
실행: 도망친다
}

이렇게 메서드를 3개 만들고 각각의 내용을 작성해줘야한다.
3개라서 적어보이지만, 이런 경우가 몇백개로 불어난다면 
그만큼 코드가 길어지고 효율이 안좋아질 수 밖에 없다.

델리게이트를 쓸 경우
delegate 전투액션 = 

void 전투판단(delegate 전투액션)
{
  전투액션
}

이렇게 인자값으로 실행할 액션만 넘겨주기만 한다면,
어디서든지 전투판단 메서드를 배치하는 것으로 코드를 간략하게 짤 수 있다.


'오늘의 나는 무엇을 잘했는지' - 성취

디자인 패턴의 종류에 대해 배웠다.
베이직반과 챌린지반의 강의 자료를 정독했다.

'오늘의 나는 어떤 문제를 겪었는지, 앞으로 어떻게 해결할 것인지' - 개선
특별히 트러블 슈팅할 것은 없다.

다음 주부터 심화 팀프로젝트가 시작되므로 잘 준비하여 좋은 결과를 얻을 수 있게 해야겠다.

'TIL' 카테고리의 다른 글

2024/2/27 TIL  (0) 2024.02.27
2024/2/26 TIL  (0) 2024.02.26
2024/2/22 TIL  (0) 2024.02.22
2024/2/21 TIL  (0) 2024.02.21
2024/2/20 TIL  (0) 2024.02.20