본문 바로가기
대외활동/[KSEB] 팀프로젝트 게임 개발 일지

[KSEB] 게임 도메인 팀프로젝트 2주차 개발일지

by RucA 2024. 7. 13.
728x90
반응형

뭔가 초반이라서 그런지 일단 필요할 거 같아보이는 건 빠르게 구현해두고, 이후 코드를 다듬는 방식으로 진행했다. 지금 정리해서 보니 생각보다 많이 한 것 같긴하지만, 나중에 기능을 확장할때 오류없이 동작하도록 하려면 좀 더 다듬어서 강건하게 바꿀 필요가 있을 것 같다. 아래는 2주차동안 내가 맡아서 진행한 내용을 GIF와 함께 간단히 정리했다.

 

 

2주차 게임 개발일지


 

2주차 게임 현황 시연

 

아직 개선해야 할 점이 너무 많다... 일단 방금 해보면서 카메라 움직임이 너무 어지러운 것 같아 우선적으로 개선이 필요할 듯 하다

내가 구현한 기능의 목차를 정리하자면 이와 같다.

  • 로프 액션 구현(DistanceJoint2D 활용)
  • 피격 데미지 UI 이펙트 구현
  • 튜토리얼용 보스 캐릭터 컨셉, 기믹 구현
  • 튜토리얼용 보스 캐릭터의 2페이지, 그로기 상태 구현
  • 밟으면 일정 시간 후 사라지는 발판 구현
  • 보스 전투용 맵 초안 제작
  • 비동기 로딩 화면 제작(UniTask 활용)
  • SFX와 BGM 매니저 분리, 씬 전환과 연동
  • 차지 공격 스킬 구현(간단한 파티클 시스템 활용)
  • 씬 전환 후 Don'tDestroyThis로 인한 버그 수정

 

이외에도 다른 팀원이 메인 메뉴, UI 시스템 보강, 아이템 등을 추가로 구현해줘서 나름 인디 게임의 느낌이 나기 시작했다.

각 기능을 GIF와 함께 조금 더 구체적으로 서술하겠다.

 

 

로프 액션 구현


로프 액션 구현
로프 액션 구현

 

이 게임에서 차별점 중 하나로 밀고 나갈 로프 액션으로, 아직 정리되진 않았으나 초안으로 구현한 DistanceJoint2D를 사용한 방식으로 진행될 듯 하다. 후크(현재 흰 동그라미)를 발사해서 지형과 충돌할 경우 고정되며, 와이어의 길이를 줄일 수 있도록 구현했다. 발사 속도와 와이어의 길이, 부착할 수 있는 레이어를 외부에서 조정할 수 있도록 열어두었다. 다만 아직 코드가 정리되지 않아서 그런지 가끔 와이어(선)이 잠깐 제대로 렌더링이 안되는 경우가 있고, 조작감을 조금 더 개선할 필요가 있다.

 

 

피격 데미지 UI 이펙트 구현


피격 데미지 UI 이펙트 구현
피격 데미지 UI 이펙트 구현

 

팀원들과 상의 끝에 기본 몬스터의 체력은 표시하지 않는 것으로 방향성을 정했다. 다만 피격 효과와 피격 효과음만으로는 제대로 몬스터를 타격한 느낌이 들지 않아 UI 상으로 피격 데미지를 표시해주는 로직을 구현했다. 피격처리된 좌표만 넘겨주면 정적으로 어디서나 그 위치에 피격 데미지 UI 이펙트를 나타낼 수 있다. 이후 피격 데미지의 폰트와 색을 변경할 필요가 있다.

 

 

튜토리얼용 보스 몬스터(킹 슬라임) 구현


튜토리얼용 보스 캐릭터 컨셉, 기믹 구현
튜토리얼용 보스 캐릭터 컨셉, 기믹 구현

 

  • 튜토리얼용 보스 캐릭터 컨셉, 기믹 구현
    • 롤의 트위스티드 페이트의 스킬에 영감을 받아, 앞에 나온 기본 몬스터 3종 중 하나의 공격 패턴을 랜덤으로 정해 공격하는 방식으로 구현했다. 각 공격 패턴마다 선딜레이와 후딜레이가 있으며, 이후 리셋되어 다시 공격 패턴을 랜덤으로 정한다. 기본적으로는 애니메이션과 애니메이션 이벤트 트리거를 통해 구현했는데, 나중에 알고 보니 상태머신 이벤트용 상속 방식이 별도로 있는 듯하다. 이후 몬스터를 제작할때는 그 방식을 통해 구현하려고 한다.

 

튜토리얼용 보스 캐릭터의 2페이지 구현
튜토리얼용 보스 캐릭터 2페이지 구현

 

  • 튜토리얼용 보스 캐릭터 2페이지 구현
    • 2페이지시 전체적으로 회색 계열로 변하며, 공격 관련 스탯이 2배, 선딜레이와 후딜레이가 절반이 되고 공격 패턴이 정해지는 속도가 더 빨라지도록 구현했다. 또한 체력이 10프로 아래가 되면 검은색으로 바꿔 어떤 공격 패턴인지 파악할 수 없도록 구성했다.

 

튜토리얼용 보스 캐릭터 그로기 상태 구현
튜토리얼용 보스 캐릭터 그로기 상태 구현

 

  • 튜토리얼용 보스 캐릭터 그로기 상태 구현
    • 일반 몬스터의 경우 피격시 바로 경직되지만, 보스 몬스터의 경우는 바로 경직되는 게 아닌, 그로기 게이지를 모두 제거해야 경직(그로기) 상태가 되도록 구현했다. 아직은 속성 등이 없어서 일단 10발을 맞을 경우 그로기 상태에 빠지도록 세팅했다.

 

 

튜토리얼 보스 전투용 맵 초안 제작


튜토리얼 보스 전투용 맵 초안
튜토리얼 보스 전투용 맵 초안

 

  • 튜토리얼 보스 전투용 맵 초안 제작
    • 후크를 걸 수는 있지만 올라가면 미끄려져 떨어지는 삼각형 지형과, 밟으면 3초 후에 사라지는 발판으로 와이어를 자주 사용하도록 유도하고자 했다. 와이어를 지속적으로 사용하지 않으면 바닥에 있는 발판이 사라져서 떨어져 죽도록 초안을 구성했지만, 실제로 플레이하니 너무 어렵다는 의견이 많아 바닥의 구멍은 이후 메울 수 있을 것 같다.

 

밟으면 일정 시간 후 사라지는 발판 구현
밟으면 일정 시간 후 사라지는 발판 구현

 

  • 밟으면 일정 시간 후 사라지는 발판 구현
    • 이건 간단해서 빠르게 코드만 구현했다. 다만 좀 더 곧 발판이 사라지니 빨리 이동해야 한다는 경각심을 가질 수 있도록 발판이 흔들리는 애니메이션을 추가할 필요가 있을 듯 하다.

 

 

비동기 로딩 화면 구현


비동기 로딩 화면 구현
비동기 로딩 화면 구현

 

UniTask를 활용해 만들었다. 로딩 중인 던전에 관련한 일러스트와 팁, 배경 스토리 등을 게임 플레이어가 게임 도중에 자연스럽게 접할 수 있도록 로딩 화면에 넣어 구현했다. 로딩 시간이 너무 짧아 이를 제대로 보일 수 없을 경우를 고려해, 최소 로딩 시간을 추가해서 최소 로딩 시간과 실제 로딩 비율 중 덜 진행된 곳에 맞춰 로딩바가 움직이고, 둘 다 완료된 경우 씬을 전환하도록 구현했다. 이후 로딩 화면에 관련한 일러스트와 문구를 저장해두는 DB를 만들어 로딩 화면이 더욱 다채롭게 보일 수 있도록 변경할 예정이다.

 

 

차지 공격 스킬 구현


차지 공격 스킬 구현
차지 공격 스킬 구현

 

플레이어의 특수 공격 및 스킬을 하나씩 구현할 예정이다. 그 중 차지 공격 스킬을 가장 먼저 구현했다. 이후 스킬 트리나 스킬 변경 등의 기능이 추가될 수 있어, 가능한 플레이어에게 의존적이지 않도록 만들었다. 이것도 로직 자체는 간단하지만, 차지가 제대로 되고 있는지 파악이 잘 안되서 파티클 시스템을 코드를 통해 간단히 조절하는 것을 구현했다. 다만 파티클 이펙트에 대한 추가적인 공부가 필요할 듯 하다.

 

 

기타


 

이외에도 기존에는 전부 통합해서 만들었던 사운드 시스템을 SFX와 BGM으로 나누어 구성했고, 씬이 변할때 자동적으로 씬의 이름과 같은 BGM이 실행되도록 구현했다. 또한 씬 전환시 Don'tDestroyThis로 설정한 일부 오브젝트에서 예외처리를 안해 씬 전환을 할때마다 점차 중첩되는 버그를 발견하고 수정했다. 다른 팀원들은 맵 구성, 메인 화면 구성, 플레이어 및 총기 구현, UI 추가 구현, 아이템 구현, 카메라 움직임 구현 등을 맡아 진행했다. 다음주 화요일에 1차 중간 발표 및 멘토링이 진행될 예정인데, 발표 전까지 다듬고 발표 자료도 만들어야겠다...

728x90
반응형