스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록

2024.05.07 TIL - 프로젝트 마무리

테크러너 2024. 5. 7.

프로젝트 개요

팀원 소개

프로젝트 소개

클래스 설계

https://www.figma.com/file/bzfUJ0X8lwQcJv28lGtcW3/%ED%8C%80%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-3%EC%A3%BC%EC%B0%A8?type=design&node-id=0-1&mode=design&t=nWoSgyxRfvbI87Qp-0

플로우 차트

시연 영상

https://youtu.be/MrC1erl00S4

기술스택

GitHub

  • Organizations 리포지토리 생성
  • GitHub Desktop 사용
  • Stash로 작업물을 유지한 채 Pull 받아온 후 Push하여 Main에서 안전하게 받아오기
  • 그외 Discard, Revert 사용해봄
  • 깃 플로우 브랜치 전략 : Main -> Dev -> Feature 
  • 깃 컨벤션 규칙 준수
  •  

C#

  • 코드 컨벤션 규칙 적용
  • Character.cs, QuestManager, SceneManager 싱글톤 패턴을 활용하여 데이터 접근성 확보
  • 멤버 변수 프로퍼티 사용 -> get 용이, set 제한
  • Json : 경량화된 데이터 포멧을 사용하여 게임 데이터 저장
  • List형 데이터를 클래스로 한 번 더 감싸주는 코드를 작성하여 Json 저장 용이
  • Virtual, Override 키워드 활용(다형성 구현)
  • Enum 열거형 타입 지정
  • 아이템 베이스 클래스는 Interface로 구현하여 유연성 상승
  • 클래스별 분리 및 파일링 작업 -> 구조의 가시성 확보
  • 딕셔너리 활용으로 Scene마다 제목과 설명을 불러오기 용이
  • 클래스는 데이터를 가지는 클래스와 기능을 수행하는 클래스로 분리하여 체계적인 구조로 코드 작성

 

커뮤니케이션 협업툴

Notion

  • 팀원 정보 정리
  • 시간, 깃허브 규칙 및 약속
  • 목표 설정
  • 하루 계획 작성

Slack

  • 소통 메신저

 

클래스 설계툴 - Figma

  • 클래스 설계로 전반적인 구조 틀 잡고 구현 시작

 

트러블 슈팅

[Problem 1]

Scene들을 어디서든 불러오고 싶었는데 추상 클래스여서 static으로 붙일 수 없는 문제

[Resolve]
SceneManager.cs를 두어서 싱글톤으로 관리
추상클래스는 구현부도 있으니 선언부만 있는 인터페이스로 변경

[Result]
팀원들과 충분히 고민해본 후 튜터님께 찾아가서 방법을 알게되었는데, 추상클래스와 인터페이스의 차이를 명확히 알 수 있었다.

 

[Problem 2]

퀘스트 완료 후 몬스터수를 초기화해야했는데 적용되지 않는 오류
[Resolve]

모두 함께 머리를 싸매고 코드를 바라봤는데 등잔 밑이 어둡다고 코드만 바꿀 줄 알았지 알맞은 퀘스트 위치가 아니였다.
1번 퀘스트인데 3번 퀘스트에 적용을 했던 것이다. 디버깅을 통해 알게 되었다.
[Result]
코드 수정에만 집중을 했는데 알맞은 곳인지 다시 한 번 확인해야겠다.

 

[Problem 3]

전체 코드 구조를 구상하는 것이 어려웠다.
처음엔 규모가 작다고 생각했는데 점점 파일이 늘어날 수록 이걸 어떻게 연관시켜야할지 고민이 많았다.
[Resolve]
끊임없는 토의와 새로운 아이디어, 때로는 튜터님의 도움을 받아 해결했다.
[Result]
초반에 아무리 구조를 잘 짜도 수정되기 마련이다.
그래서 객체화를 잘 시켜야한다는 것을 몸소 느꼈다.

 

라스트 멘션

 

깃허브 링크

https://github.com/NailBawoomUnityCamp/A01

반응형

댓글