2024. 8. 7. 21:14ㆍ나의 개발자 기록/본 캠프 개발 일지
2024년 8월 07일 수요일
What I did today : 몬스터 추가 계획하기 + 슬라임 몬스터 추가하기
https://deepdivegamestudio.itch.io/
오늘 오전에는 어제 만들었던 로그인 시스템 오류를 조금 고치고, 몬스터에 대해서 에셋을 사용하기로 했었기 때문에, 기존에 쓰려고 했었던 무료 에셋을 사용하려고 했지만, 여기에는 공격 애니메이션이나 죽는 애니메이션이 없는 문제가 있었습니다. 그래서 어떻게 할까 생각하다가 여러 가지 유료 에셋도 찾아보고 했는데, 적당하면서도 괜찮은 게 없어서 팀원분들과 상담을 해 본 결과, 그냥 위 사이트의 무료 버전 몇 개랑 유료 하나를 사서 캐릭터처럼 직접 애니메이션을 만드는 방향으로 정하게 됐습니다.
오후에는 에셋을 스프라이트 이미지를 정리해서 맵을 만드시는 팀원분에게 맵이랑 잘 맞는 몬스터 몇 개를 골라달라고 했습니다. 그리고 저는 그 몬스터들에 대해서 애니메이션을 만들 준비를 했습니다만... 3시쯤 넘어서 잠깐 팀원분들이랑 회의를 진행하면서 작업한 거 합치고, 우선순위를 고려해봤을 때, 덱 빌딩이나 스테이지, 디펜스 맵 등등 다른 부분이 완전하게 이어지는 게 이번 주간 체크의 목적이라 몬스터는 일단 슬라임 3개 있는 거 하나 더 늘려서 노란색 슬라임을 만들고, 각 슬라임을 챕터 별로 넣어서 몬스터가 잘 생성이 되는지, 혹은 전투에 이상이 없는지 확인하는 것으로 회의를 마쳤습니다.
저는 바로 기존에 있던 슬라임을 복사하여 Aseprite에 있는 색조 변경 기능으로 노랑색으로 만들고, 스프라이트 시트로 만들었습니다. 그리고 캐릭터처럼 유니티에 적용한 후, 시트를 조정하고, 몬스터 SO 데이터를 구글 시트에 입력 후, 기존 몬스터 방식대로 애니메이션을 만들어서 새롭게 만들었습니다.
남은 시간에는 다음 주에 유저 테스트를 진행해야 하니 UI 작업도 어느정도는 만들어 두자는 이야기가 나왔었고, 사운드도 가능하면 얼추 적용시켜 두는 게 좋을 것 같아서 사운드 구축을 담당했었던 제가 캐릭터와 몬스터에 대한 사운드를 AI로 만들거나 필요한 사운드를 무료 Sound 사이트에서 찾아보았습니다.
그리고 저녁을 먹고나서 7시에 다른 쪽 튜터님께서 사운드 매니저 특강을 잠깐 하신다고 하셔서 제가 구축했던 거에서 보강할 게 있을 것 같아 강의를 들으러 가서 튜터님이 구축하시는 것과 비교하려고 스크립트를 찾는데... "어라? 내가 만들어둔 SoundManager가 어디 갔지??" 하면서 돌발 상황 발생...
급하게 어디서 없어졌나 찾아 봤더니... 아까 팀원분들이랑 합칠 때, 제가 최근에 했던 힐러와 사운드 시스템이 싹 날아가는 상황이 발생. 원인은 풀 리퀘를 하실 때, Dev 최신화를 안하고 하셔서 그런 것 같은데, 다행히도 Revert Change 기능으로 뒤로 돌린 다음에 복구에 필요한 파일들만 구분해서 다시 커밋했습니다. 순간 강의 듣다가 식겁해서 심장 떨어질 뻔했네요.
그리고 8시부터는 담당 튜터님의 주간 체크가 이어졌고, 저희가 작업했던 부분을 튜터님께 공유해드렸습니다. 남은 시간 동안 속도를 내서 주말 포함해서 빠르게 작업하면 다음 주 유저테스트를 하고, 안되면 조금 늦더라도 수요일날 하는 것으로 이야기를 했고, 튜터님께서 생각하시는 유저 테스트 기간이랑 맞아 떨어져서 이번 주간 체크를 잘 마무리 했습니다. 그리고 마지막 면접 테스트는 지금이 바쁜 때라 다음 주 수요일로 미뤄서 하는 것으로 결정하게 됐습니다. 남은 시간에는 TIL을 쓰면서 오늘 하루를 마무리했습니다.
면접 질문 대비 : 인터페이스와 추상클래스의 차이는 무엇인가요?
// 인터페이스 예시
public interface IMovable
{
void Move();
}
// 추상 클래스 예시
public abstract class Animal
{
public abstract void Speak();
public void Eat()
{
Console.WriteLine("Eating...");
}
}
인터페이스
1. 메서드, 속성, 이벤트, 인덱서 등의 선언만 포함하며, 구현은 포함하지 않습니다.
2. 다중 상속을 지원합니다.
3. 모든 멤버는 기본적으로 public이며 접근제한자를 지정할 수 없습니다.
4. 주로 클래스의 기능을 정의하는 계약 역할을 합니다.
추상 클래스
1. 일부 구현된 메서드를 포함할 수 있으며, 추상 메서드는 구현을 제공하지 않습니다.
2. 단일 상속만 지원합니다.
3. 접근제한자를 지정할 수 있으며, 상태(필드)를 가질 수 있습니다.
4. 공통된 기능을 공유하면서도 파생 클래스에 특정 구현을 강제할 때 사용합니다.
'나의 개발자 기록 > 본 캠프 개발 일지' 카테고리의 다른 글
2024년 8월 09일 금요일 개발일지 / 사운드 적용하기 + UI 디자인 (0) | 2024.08.09 |
---|---|
2024년 8월 08일 목요일 개발일지 / 사운드 적용하기 + 인트로 씬 꾸미기 (0) | 2024.08.08 |
2024년 8월 06일 화요일 개발일지 / 계정 관리와 저장 및 불러오기 (0) | 2024.08.06 |
2024년 8월 05일 월요일 개발일지 / Heal Text Effect와 Sound System, 그리고 UGS에 대해서 (0) | 2024.08.05 |
2024년 8월 02일 금요일 개발일지 / 나머지 캐릭터 만들기 (0) | 2024.08.02 |