전체 글 101

[내일배움캠프 - 언리얼] CH3 프로젝트 회고

이름KEEPProblemTry이병헌작업한 내용에 대해 서로 빠른 피드백을 주고 받아 더 좋은 퀄리티를 이끌어낼 수 있었다.구현하려는 방식이 이미 작업한 내용과 연계가 되지 않아 다른 구현 방식을 찾아야했다. → 기획 과정에서 가능한 구체적으로 설계를 해야함코드에 주석도 달고 작업 도중도중 정리하고 리팩토링을 하면 서로의 코드 분석에 시간이 덜 소모되어 좋을 듯하다.조창민과감한 리팩토링 사용하는곳이 많은 코드여도 과감하게 리팩토링을 진행해 완성도를 높인 점짧은 기간에도 확장성있고 응집도높은 구조를 만들려고 노력한 점DataTable이 type에 따라 읽어오는 크기가 다르게 될 줄 알았던 점그림을 작게 그린 상태로 프로젝트를 시작해본 것은 처음인데 나하고 맞지 않는 방식인 것 같다 모든 요소가 추가되지 않더..

[내일배움캠프 - 언리얼] DAY 55 - 팀 프로젝트 진행

게임 스테이트에서 wavedata를 프로퍼티로 가져왔었는데 소프트 레퍼런스로 가져와서 적용을 매번 해줘야했다.소프트가 아니라 하드로 바꾸니 해결되었다. 레벨을 만들었는데 몬스터 ai가 이동할 수 있도록하는 navmesh가 계단과 2층이 설정이 안되었다.레벨의 navmeshvolume의 z스케일을 늘려주고 계단의 콜리전을 설정해주어 해결하였다.

[내일배움캠프 - 언리얼] DAY 53 - 디커플링

Decoupling목표: 의존성 최소화, 독립성 최대화 완전독립이 목표가 아님-> 시스템의 요소들이 어느 정도 협력해야함 디커플링의 보편적 가치- 복잡도 관리- 유지보수성- 재사용성- 확장성- 병렬 개발 소프트웨어 공학의 디커플링변화의 속도 - 빠른 변화복잡도 - 높은 복잡도보이지 않는 구조 - 추상성 약결합1. 변경 격리2. 재사용 가능3. 테스트 쉬움4. 병렬 개발 디커플링 패턴1. 인터페이스- 다형성, 타입 안전, 컴파일 타임 체크2. 델리게이트- 언리얼 표준 방식, 블루프린트 지원, 타입 안전3. 옵저버 패턴- 고전적 디자인 패턴, 이해하기 쉬움4. 의존성 주입- 테스트 시 Mock 주입 가능, 구현 교체 쉬움5. 메시지 패턴- N:N 관계 지원, 완전한 디커플링, 런타임 확장 가능언리얼 엔진의 ..

[내일배움캠프 - 언리얼] DAY 52 - 팀 프로젝트 진행

몬스터 스폰게임 스테이트에서 스테이지에 몬스터를 소환하기위해 이전 과제에서 사용하였던 SpawnVolume을 재사용하여 맞게 변경하였다.MonsterSubsystem의 MonsterSpawn과 MonsterData로 몬스터를 볼륨에 정보를 넣고 스폰시켰다. Subsystem은 싱글톤 같은 역할인데 엔진의 라이프스타일에 맞춰 관리해준다.다른 파일에서 불러올때USomeSubsystem* MySubsystem = GetWorld()->GetSubsystem(); 추후 SpawnMonsterData와 MonsterData의 역할이 겹쳐 SpawnMonsterData에서 MosterID만 갖고 있는 것으로 수정이 필요하다