| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 박기현
- 백준
- 메타버스
- https://insightbook.co.kr/
- 게임 수학
- C
- 전공자를 위한 C언어 프로그래밍
- unity6
- JavaScript
- 이득우의 게임수학
- The Elements of Computing Systems 2/E
- C++
- Shimon Schocken
- HANBIT Academy
- hanbit.co.kr
- 이득우
- 잡생각 정리글
- 김진홍 옮김
- 입출력과 사칙연산
- C#
- BOJ
- 주우석
- (주)책만
- 데이터 통신과 컴퓨터 네트워크
- 일기
- 생능출판
- Noam Nisan
- 밑바닥부터 만드는 컴퓨팅 시스템 2판
- 알고리즘
- booksr.co.kr
- Today
- Total
cyphen156
스컬 모작 프로젝트 #2 프로젝트 버전 마이그레이션 본문
완성은 커녕 유기되지나 않으면 다행인 프로젝트
최근 Unity를 좀 안만졌더니 기억이 또 가물가물해졌다.
감각 유지겸 심심할때 진행할 포폴용 프로젝트를 뭐를 할까 고민하다가
부트캠프 때 진행하다가 수없이 많은 스프라이트 덩어리들에 질려서중단햇던 스컬 프로젝트를 가져왔다.
- 당시 엔진 버전: Unity 6.0.3f1
- 현재 타깃 버전: Unity 6.3 (베타)
이번에는 기존 프로젝트를 그대로 올리는 버전 업그레이드(version bump) 대신, 새 프로젝트 생성 → 필요한 기능만 선별 이관/리팩토링하는 버전 마이그레이션으로 간다.
리포지토리 구성
- Unity 6.3 클라이언트 (Netcode 기반)
- P2P(클라↔클라) 플레이 우선
- 리소스 다운로드 + DB 서버 (C# / Linux)
- Addressables 원격 로드 전용. 비동기 I/O
- 게임 서버 (C#/세션 중개)
Unity CCD를 배워서 써먹을 수도 있기는 한데 그건 내가 원하는 방향은 아니라서 제외하기로 했다.
3번의 경우 epoll 배워서 사용할지, 아니면 그냥 2번과 같이 C# 서버를 사용할지 고민중이긴 하다.
==> C#서버로 확정했다.
이유는 단순한데 NDC에서 서버쪽 발표 할때 C#인 경우가 상당했기 때문에 그냥 C#으로 빠르게 실전 학습하는게 중요하다고 판단했다.
====> 2번과 합쳐지지는 않지만 3번을 경유하여 2번 프로젝트로 진입할 가능성이 있다. 영속성을 위해 클라이언트가 직접 호출하는걸 막고, 세션연결로 다운로드 스트림을 이어준다면 될 것 같다.
1. 싱글플레이 리소스 로드 규칙

2. 멀티플레이 세션 흐름도

우선 클라이언트 초기 세팅부터 해준다.
필수 매니저들을 다음과 같이 생성했다.

각각의 역할을 간략하게 설명하자면 다음과 같다.
🔹 BootStrap
- 게임 실행 시 가장 먼저 동작하는 초기화 스크립트
- 각 매니저들의 초기화 순서를 보장하기 위한 오브젝트
🔹 NetworkManager
- Unity Netcode for GameObjects의 핵심 컴포넌트
- 호스트/클라이언트 세션 관리, P2P 연결 제어
🔹 ResourceManager
- Addressables 리소스 로딩/캐싱/해제 담당
- 개별 키·라벨 단위 로드 지원
- 로딩 시 UIManager와 연계해 로딩 표시
🔹 SceneLoadManager
- 씬 전환 담당 래퍼
- Addressables 기반 씬 로드/해제 지원
- 라벨 단위 프리로드 연계
🔹 GameManager
- 전역 게임 시스템 매니저
- 게임 상태(Ready → Play → End) 관리
- 멀티플레이 시 NetworkBehaviour로 동작, 서버 권위로 상태 동기화
🔹 UIManager
- UI 제어 매니저
- 로딩/페이드, HUD 갱신, 보스 패널 교체 등
- GameManager/SceneManager 이벤트를 받아 UI 반영
🔹 SoundManager
- BGM / SFX 제어 매니저
- 오디오 재생, 중복 방지, 페이드 인·아웃 지원
- 클라이언트 로컬만 제어
🔹 InputManager
- 전역 입력 라우팅 담당
- Unity New Input System 기반
마이그레이션하면서 네트워크를 달고있어서 꽤 시간이 걸렸다.
세세하게 가져온건 Intro프리펩 정도와 Loading UI 정도가 되겠다. 그 외 다른것들은 거의 싹 수정했다.
아마 어드레서블 로드를 지원했던 리소스 매니저는 이제 서버 권위에 의존해야 하기 때문에 싹 수정될 예정이라 아직 마이그레이션 하지않았다.
프로젝트는 다음 경로에 존재합니다.
cyphen156/Skul-Dimension-Rift: Skul : The Hero Slayer 모작 프로젝트
GitHub - cyphen156/Skul-Dimension-Rift: Skul : The Hero Slayer 모작 프로젝트
Skul : The Hero Slayer 모작 프로젝트 . Contribute to cyphen156/Skul-Dimension-Rift development by creating an account on GitHub.
github.com
'프로젝트 > Skul 모작' 카테고리의 다른 글
| 스컬 모작 프로젝트 @2 도메인 시스템 개발 과정중 GPT와의 설계 논의 (0) | 2025.11.21 |
|---|---|
| 스컬 모작 프로젝트 @1 UI 개발과 리팩터링 고민_1 (1) | 2025.11.14 |
| 스컬 모작 프로젝트 #999 Extra 게임 서버 구축에 대한 고민글 (0) | 2025.10.13 |
| 스컬 모작 프로젝트 #3 메뉴 UI 만들기 (0) | 2025.10.09 |
| 스컬 모작 프로젝트 #1 게임 기획서 작성하기 (2) | 2025.04.11 |
