XR플밍 - (주말작업) 기업협약 프로젝트 15.1일차 (9/6)

이형원·2025년 9월 6일
0

XR플밍

목록 보기
188/215
post-thumbnail

오늘은 본격적인 작업을 했다기 보다는 앞으로 작업해야 할, 리팩토링 작업에 대해 정리하는 시간을 가졌다.

1. 현재 시스템과 UI의 정리

구성한 시스템을 분류하자면 다음과 같이 있다.

  • 캐릭터 편셩 시스템
  • 캐릭터 가챠 시스템
  • 캐릭터 업그레이드 시스템
  • 시간과 관련된 시스템

이에 따라 핵심 시스템 요소가 들어가 있는 스크립트는 아래 4개 정도이고, 나머지는 전부 UI 표시를 위한 요소라고 봐도 무방하다.

  • TimeManager, RandomGachaSystem, TempDataManager, TeamOrganizeManager 외에는 거의 UI를 위한 시스템.

현재 폴더별로 사용하는 코드와 추후 변경해야 할 코드도 정리했다.
사용하지 않거나 작동하지 않는 코드/이후 설계에서 빼도 되는 코드는 X표시, 시스템 요소인 코드는 파란색, 특이사항이 있는 코드는 노란색으로 적으면서 사유를 적었다.
표시하지 않은 나머지 코드는 전부 UI 로직 코드이다.


* 편성시스템 - TeamOrganizeManager(리팩토링하면서 시스템 로직만 따로 빼내야 할 필요성 있음)

* 랜덤 가챠 시스템 관련 로직 - RandomGachaSystem(리팩토링하면서 시스템 로직만 따로 빼내야 할 필요성 있음)

* 시간 관련 시스템 로직 - TimeManager(1차 리팩토링 완료)

* 가중치 확률 시스템 - WeightedRandom (범용적으로 사용하기 위해 가져온 것)

* 임시 데이터 매니저 - TempDataManager(편성 시스템 관련 데이터 저장 - TeamOrganizeManager의 시스템 로직을 여기로 옮기는 방법 고민중)

2. 개선법에 대한 고민

4개의 시스템을 정리해야 하는 방식은 다음과 같다

  • TimeManager - 일단 지금 정리한 게 최선이라고 생각함. 더 나은 방법이 있는지는 고민이 필요함.
  • 업그레이드 관련 - 어차피 UnitData와 UpgradeData를 연결하고 나면 시스템 로직을 따로 구성할 필요 없음. 현재 구성한 구조 유지
  • RandomSystem - 시스템 관련 로직을 따로 빼낼 필요성이 있음.(작업난이도 하~중 예상)
  • TeamOrganizeManager - 이론상 자동편성 시스템만 빼내오면 되긴 함. 이걸 TempDataManager로 옮길 예정을 하고 있으며, 이걸 옮기는 게 조금 어려울 수 있음.(작업난이도 중~상 예상)
  • TempDataManager - 이 시스템을 유지한다고 가정하면, 편성 관련 로직을 전부 여기로 옮겨와야 함.
    ex) 캐릭터 추가, 캐릭터 제외, 편성 코스트, 제한 조건 등

-> 이에 따라 전체 UI가 동작하는 로직 : TempDataManager에 캐릭터 전체 데이터베이스SO를 캐싱해 둔 다음 해당 데이터를 참고하여 캐릭터의 표시를 함.

가장 간단하게 처리할 수 있는 방법은 이렇다고 생각했다. 이와 같이 구조를 개선한 다음 파이어베이스 DB에 해당 내용을 저장하고 로드하는 로직만 잘 설정하면 문제없이 작동할 것이라 기대한다.

profile
게임 만들러 코딩 공부중

0개의 댓글