- 저장소 분리: 해당 저장소는 Unity-MMO-RPG-Total 저장소에서 Server 부분만 분리하여 관리.
- 기능: 클라이언트-서버 간 네트워크 통신 및 멀티플레이어 게임 로직 처리.
- 목표: 안정적인 작업 처리 구조와 효율적인 네트워크 통신 구현.
Connector.cs
:- 클라이언트와 서버 간 연결 설정.
- 연결 성공 시
Session
객체 초기화 및 시작.
Listener.cs
:- 서버에서 클라이언트 연결 요청 수락.
- 새로운 세션 생성 및 연결 관리.
Session.cs
및PacketSession.cs
:- 클라이언트와 서버 간 데이터 송수신 관리.
- 패킷 기반 데이터 처리 및 연결 관리.
SessionManager.cs
:- 여러 클라이언트 세션 관리.
- 세션 생성, 검색, 삭제 기능 포함.
RecvBuffer.cs
:- 데이터를 수신 및 관리하는 버퍼 구현.
- 효율적인 읽기/쓰기 포지션 관리.
GameRoom.cs
:- 게임 룸(방)을 관리.
- 플레이어 입장, 퇴장, 채팅, 이동, 스킬 사용 등 주요 이벤트 처리.
Map.cs
:- 맵 데이터 관리 및 플레이어 이동 처리.
- 충돌 검사를 통해 이동 가능 여부 판단.
RoomManager.cs
:- 여러 게임 방 관리.
- 방 생성, 검색, 삭제 및 업데이트 기능 포함.
ObjectManager.cs
및GameObject.cs
:- 게임 내 객체(플레이어, 몬스터 등) 관리.
- 객체 생성, 삭제 및 상태 업데이트.
Player.cs
:- 플레이어 객체의 상세 구현.
- 데미지 처리, 사망 처리 등의 로직 포함.
ConfigManager.cs
:- 서버 설정 정보 관리.
- JSON 기반 설정 파일 로드 가능.
DataManager.cs
및Data.Contents.cs
:- 게임 내 스탯 및 스킬 데이터 관리.
- JSON 데이터를 로드하여 딕셔너리로 구성.
Job.cs
,JobSerializer.cs
,JobTimer.cs
:- 작업(Job) 정의 및 실행 관리.
- 작업 스케줄링과 우선순위 큐를 사용한 타이머 구현.
Protocol.cs
:- Google Protobuf 기반 패킷 정의.
- 로그인, 채팅, 이동, 스킬 사용 등 다양한 패킷 구현.
PacketHandler.cs
:- 패킷 처리 핸들러 정의.
- 각 패킷에 대한 처리 로직 구현.
ServerPacketManager.cs
:- 패킷 등록 및 처리 관리.
- 패킷 수신 후 적절한 핸들러 호출.
PriorityQueue.cs
:- 작업 우선순위 큐 구현.
- 작업 스케줄링에 사용.