EveryDay.DevUp

[MR] 프로젝트 초안 본문

ProjectMR

[MR] 프로젝트 초안

EveryDay.DevUp 2025. 1. 9. 22:02

목표 

- Unity 6 신규 기능 경험

- C# 클라이언트/서버 구현 경험

- 초기 버전부터 상용 서비스까지의 전체적인 개발과정 경험

게임 컨셉

- 로그라이크 / 머지

- 2D Pixel

게임 개발을 위해 고민이 필요한 것

1. 데이터 직렬화

1) 기획 데이터의 직렬화

- 기획 데이터를 클라/서버가 사용할 때, 프로젝트에 따라서 데이터 처리가 다름

: 기획 데이터는 현재까지 경험상 엑셀 외의 것을 사용하는 것을 경험한 적이 없음

: 엑셀 데이터를 직렬화하는 포맷으로 json, csv, xml, message pack 을 사용했던 경험이 있음

-> 데이터 직렬화를 위한 타입 정의를 어떻게 할것인가.

-> 어떤 직렬화 라이브러리를 사용해서 엑셀 데이터를 파싱할 것인가에 대한 고민 필요

2) 클라 서버 통신 시 어떤 직렬화 라이브러리를 사용할 것인가?

- json, message pack, proto-buf, flatBuffer를 사용했던 경험이 있음

- 어떤 직렬화 라이브러리를 사용해서 통신에 사용할 것인가에 대한 고민 필요

: Message Pack, Proto-Buf, FlatBuffers 중 고민 

2. 게임 시스템

1) 리소스 관리

- 어드레서블 시스템

2) UI

-  UI 관리 시스템 구현 : UI 자료구조, 캔버스, 해상도 대응 (Safe Area), 아틀라스 

- 프리팹에 오브젝트를 어떻게 참조할 것인가?.

: 링크를 프리팹에서 걸어서 사용하는 방법은 이슈가 있음

-> 프리팹에서 오브젝트가 삭제된 경우, 링크가 누락된 경우 에러가 발생했을 때 추적이 어려움

: 코드에서 Find로 찾는 방법 -> 프리팹에서 오브젝트가 삭제된 경우 코드로 추적이 가능함 

- UGUI를 랩핑한 클래스 

: 버튼의 일괄처리를 위해 버튼을 랩핑

3) 시스템

- 리소스 관리 : 어드레서블에서 리소스를 로드/해제

- 씬 관리 : 씬 로딩 / 전환

- 네트워크 관리 

- 데이터 관리 : 사용자, 기획 데이터

- 이벤트 콜백 관리

- 사운드 : 배경음, 효과음 관리

4) 그래픽스

- 2D URP : 셰이더, 포스트 프로세싱, 이펙트

5) 패키지 

- Particle Attractor, DoTween, UniTask, Simple-Scroll snap, Recyclable Scroll Rect

6) 배포

- Jenkin 빌드 자동화

- 버전 관리

# 아이콘은 Chat Gpt 생성형 이미지를 사용했습니다.